分享java带来的快乐

我喜欢java新东西

Oracle_Database_10g小提示三则

Oracle_Database_10g小提示三则
CALIS管理中心 刘小刚

*本文所涉及到的Oracle_Database_10g运行在操作系统Red Flag Linux DC 4.1下。
    8月1日至8月19日,CALIS第三期系统管理员培训班在上海交通大学闵行校区图书馆成功举行。作为这期培训班的管理人员之一,笔者旁听了红旗Linux 和Oracle Database 10g的全部讲课。10g的培训内容基本涉及到了该数据库的各个方面,但是在实际部署CALIS产品的时候,除了要了解Red Flag Linux DC 4.1下有方便10g安装的Oracle Install Navigator(系统命令oranavi),以下三个问题值得注意。一、RESOURCE角色的UNLIMITED TABLESPACE权限问题
    在10g中,RESOURCE角色包含了CREATE TRIGGER、CREATE INDEXTYPE和CREATE PROCEDURE等常用的系统权限,因此在10g中创建新用户的时候除了默认的CONNECT角色,一般还要赋予RESOURCE角色。
    现在,使用Enterprise Manager(EM)或者下面的SQL语句创建一个新用户:
    CREATE USER "TEST" PROFILE "DEFAULT" IDENTIFIED BY "TESTPASS" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
    GRANT "CONNECT" TO "TEST";
    GRANT "RESOURCE" TO "TEST";
    下边,在SQL*PLUS中以该用户身份登录:
    [liuxg@localhost liuxg]$ su - oracle
    [oracle@localhost oracle]$ sqlplus /nolog
    SQL> connect test/testpass
    查询该用户所拥有的全部权限:
    SQL> select * from session_privs;
    PRIVILEGE
    --------------------------------------------------------------------------------
    CREATE SESSION
    ALTER SESSION
    UNLIMITED TABLESPACE
    CREATE TABLE
    CREATE CLUSTER
    CREATE SYNONYM
    CREATE VIEW
    CREATE SEQUENCE
    CREATE DATABASE LINK
    CREATE PROCEDURE
    CREATE TRIGGER
    PRIVILEGE
    --------------------------------------------------------------------------------
    CREATE TYPE
    CREATE OPERATOR
    CREATE INDEXTYPE
    14 rows selected.
    从结果中可以看到,该用户拥有UNLIMITED TABLESPACE系统权限。但是如果使用select privilege from role_sys_privs where role='CONNECT'以及select privilege from role_sys_privs where role='RESOURCE'查询CONNECT和RESOURCE角色却找不到UNLIMITED TABLESPACE这个系统权限。
    从Oracle MetaLink得知,UNLIMITED TABLESPACE是为了使10g保持向后兼容性而隐含在RESOURCE角色中的一个系统权限。从安全性的角度来考虑,在创建用户并且授予RESOURCE角色之后应该回收UNLIMITED TABLESPACE这个系统权限。这里推荐创建一个新角色,比如CALIS_RESOURCE,该角色拥有select privilege from role_sys_privs where role='RESOURCE'查询语句所列出的全部系统权限,而在创建新用户的时候则将赋予这个新角色。二、8080端口和2100端口被占用问题
    很多用户发现,在10g运行的时候,如果启动默认端口为8080的Tomcat,不能访问Tomcat所提供的Web应用程序,通过命令lsof -i:8080会发现该端口已经被10g占用;同样,如果启动默认端口为2100的CALIS Z-Server,该服务也不能够被访问,再通过lsof -i:2100会发现该端口也是被10g占用。
    当然可以通过改变Tomcat和CALIS Z-Server默认端口的方式来避免端口冲突。通过调查发现10g中是XML DB在使用8080和2100,而XML DB目前在CALIS各项产品中还未使用到,因此,建议通过关闭XML DB来解决问题。具体可参考如下几步操作:
    [liuxg@localhost liuxg]$ su - oracle
    [oracle@localhost oracle]$ sqlplus /nolog
    SQL> connect / as sysdba
    SQL> alter system set dispatchers='' scope=both;
    SQL> shutdown immediate
    SQL> startup
三、 Enterprise Manager(EM)的使用问题
    10g提供了使用浏览器以Web方式访问数据库的工具Enterprise Manager,EM极大的方便了数据库管理员对数据库的管理。与此同时,EM默认使用的协议是HTTP,数据库用户密码以及对数据库进行的各项操作都是在网络上明文传输,这无疑是极大的安全隐患。针对这个问题,建议使用安全性较高的HTTPS协议使用EM。具体可参考如下几步操作:
    [liuxg@localhost liuxg]$ su - oracle
    [oracle@localhost oracle]$ emctl stop dbconsole
    [oracle@localhost oracle]$ secure dbconsole
    [oracle@localhost oracle]$ emctl start dbconsole
    其中为10g中sysman用户的密码。需要说明的是,在这之后,用Microsoft Internet Explorer和Red Flag Linux DC 4.1自带的Mozilla可以正常通过HTTPS协议访问EM,但是使用Firefox则会出现invalid certificate的提示,无法正常访问,需要进一步试验来解决。
    对于EM的中文界面出现乱码的情况,解决方法请参考这个网址:
    http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm。由于EM的中文界面有很多翻译不够准确的地方,因此最好是设置浏览器的默认语言为英文,使用英文操作界面。
    另外,如果使用DBCA新建立了一个库并配置了EM,那么访问该库的EM的时候端口不再是5500,而是5501。如果再新建立另外的多个库,则端口号依次增加1,iSQL*PLUS等具有相同的规律。

posted on 2006-09-01 13:37 强强 阅读(277) 评论(0)  编辑  收藏 所属分类: Oracle数据库


只有注册用户登录后才能发表评论。


网站导航: