本文所涉及到的Oracle_Database_10g運(yùn)行在操作系統(tǒng)Red Flag Linux DC 4.1下。
??? 8月1日至8月19日,CALIS第三期系統(tǒng)管理員培訓(xùn)班在上海交通大學(xué)閔行校區(qū)圖書館成功舉行。作為這期培訓(xùn)班的管理人員之一,筆者旁聽了紅旗Linux 和Oracle Database 10g的全部講課。10g的培訓(xùn)內(nèi)容基本涉及到了該數(shù)據(jù)庫的各個(gè)方面,但是在實(shí)際部署CALIS產(chǎn)品的時(shí)候,除了要了解Red Flag Linux DC 4.1下有方便10g安裝的Oracle Install Navigator(系統(tǒng)命令oranavi),以下三個(gè)問題值得注意。一、RESOURCE角色的UNLIMITED TABLESPACE權(quán)限問題
??? 在10g中,RESOURCE角色包含了CREATE TRIGGER、CREATE INDEXTYPE和CREATE PROCEDURE等常用的系統(tǒng)權(quán)限,因此在10g中創(chuàng)建新用戶的時(shí)候除了默認(rèn)的CONNECT角色,一般還要賦予RESOURCE角色。
??? 現(xiàn)在,使用Enterprise Manager(EM)或者下面的SQL語句創(chuàng)建一個(gè)新用戶:
??? 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
??? 查詢?cè)撚脩羲鶕碛械娜繖?quán)限:
??? 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.
??? 從結(jié)果中可以看到,該用戶擁有UNLIMITED TABLESPACE系統(tǒng)權(quán)限。但是如果使用select privilege from role_sys_privs where role='CONNECT'以及select privilege from role_sys_privs where role='RESOURCE'查詢CONNECT和RESOURCE角色卻找不到UNLIMITED TABLESPACE這個(gè)系統(tǒng)權(quán)限。
??? 從Oracle MetaLink得知,UNLIMITED TABLESPACE是為了使10g保持向后兼容性而隱含在RESOURCE角色中的一個(gè)系統(tǒng)權(quán)限。從安全性的角度來考慮,在創(chuàng)建用戶并且授予RESOURCE角色之后應(yīng)該回收UNLIMITED TABLESPACE這個(gè)系統(tǒng)權(quán)限。這里推薦創(chuàng)建一個(gè)新角色,比如CALIS_RESOURCE,該角色擁有select privilege from role_sys_privs where role='RESOURCE'查詢語句所列出的全部系統(tǒng)權(quán)限,而在創(chuàng)建新用戶的時(shí)候則將賦予這個(gè)新角色。二、8080端口和2100端口被占用問題
??? 很多用戶發(fā)現(xiàn),在10g運(yùn)行的時(shí)候,如果啟動(dòng)默認(rèn)端口為8080的Tomcat,不能訪問Tomcat所提供的Web應(yīng)用程序,通過命令lsof -i:8080會(huì)發(fā)現(xiàn)該端口已經(jīng)被10g占用;同樣,如果啟動(dòng)默認(rèn)端口為2100的CALIS Z-Server,該服務(wù)也不能夠被訪問,再通過lsof -i:2100會(huì)發(fā)現(xiàn)該端口也是被10g占用。
??? 當(dāng)然可以通過改變Tomcat和CALIS Z-Server默認(rèn)端口的方式來避免端口沖突。通過調(diào)查發(fā)現(xiàn)10g中是XML DB在使用8080和2100,而XML DB目前在CALIS各項(xiàng)產(chǎn)品中還未使用到,因此,建議通過關(guān)閉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方式訪問數(shù)據(jù)庫的工具Enterprise Manager,EM極大的方便了數(shù)據(jù)庫管理員對(duì)數(shù)據(jù)庫的管理。與此同時(shí),EM默認(rèn)使用的協(xié)議是HTTP,數(shù)據(jù)庫用戶密碼以及對(duì)數(shù)據(jù)庫進(jìn)行的各項(xiàng)操作都是在網(wǎng)絡(luò)上明文傳輸,這無疑是極大的安全隱患。針對(duì)這個(gè)問題,建議使用安全性較高的HTTPS協(xié)議使用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協(xié)議訪問EM,但是使用Firefox則會(huì)出現(xiàn)invalid certificate的提示,無法正常訪問,需要進(jìn)一步試驗(yàn)來解決。
??? 對(duì)于EM的中文界面出現(xiàn)亂碼的情況,解決方法請(qǐng)參考這個(gè)網(wǎng)址:
??? http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm。由于EM的中文界面有很多翻譯不夠準(zhǔn)確的地方,因此最好是設(shè)置瀏覽器的默認(rèn)語言為英文,使用英文操作界面。
??? 另外,如果使用DBCA新建立了一個(gè)庫并配置了EM,那么訪問該庫的EM的時(shí)候端口不再是5500,而是5501。如果再新建立另外的多個(gè)庫,則端口號(hào)依次增加1,iSQL*PLUS等具有相同的規(guī)律
posted on 2006-09-01 15:34
七匹狼 閱讀(323)
評(píng)論(0) 編輯 收藏