Oracle安全全程接觸(完整版)二
2024-08-29 13:38:25
供稿:網(wǎng)友
(2)SQL*PLUS編程用戶的規(guī)范
·存儲(chǔ)結(jié)構(gòu)的規(guī)范
考慮到用SQL*PLUS編程可實(shí)現(xiàn)各行各業(yè)、各公司、各部門多種多樣的應(yīng)用需求,我們的SQL*PLUS編程用戶也應(yīng)該朝這個(gè)方向規(guī)范:不同種類的應(yīng)用必須有不同的用戶;不同種類的應(yīng)用必須有不同的存儲(chǔ)位置,包括物理文件、缺省表空間、臨時(shí)表空間的創(chuàng)建和規(guī)劃:當(dāng)預(yù)備編寫某一較大規(guī)模(從Oracle數(shù)據(jù)量和面向用戶量考慮)應(yīng)用程序時(shí),首先應(yīng)該創(chuàng)建一個(gè)邏輯的存儲(chǔ)位置-表空間,同時(shí)定義物理文件的存放路徑和所占硬盤的大小。
①、物理文件缺省的存放路徑在/oracle_home/dbs下,在命令行下用UNIX指令df -k 可查看硬盤資源分區(qū)的使用情況。假如oracle_home使用率達(dá)90‰以上,而且有一個(gè)或多個(gè)較為空閑的硬盤資源分區(qū)可以利用,我們最好把物理文件缺省的存放路徑改到較為空閑的硬盤資源分區(qū)路徑下。在此路徑下我們可以這樣規(guī)劃資源物理文件的存儲(chǔ):
xxx表空間
xxx行業(yè)/ xxx公司/ xxx 部門/ xxx 服務(wù).dbf
DEMO表空間
default_datafile_home1/col /elec/sys4/demo1.dbf
default_datafile_home1/col /elec/sys4/demo2.dbf
公司系統(tǒng)四部摹擬演示系統(tǒng)物理文件
HUMAN表空間
default_datafile_home1/col/elec/human/human.dbf
公司人事部人事治理系統(tǒng)物理文件
BOOK表空間
default_datafile_home1/col/elec/book/book.dbf
公司資料室圖書治理系統(tǒng)物理文件
QUESTION表空間
default_datafile_home1/col/elec/client/question.dbf
公司客戶服務(wù)部問題庫系統(tǒng)物理文件
PC表空間
default_datafile_home1/col/chaoxun/client/pc.dbf
公司PC機(jī)售后服務(wù)系統(tǒng)物理文件
……表空間
default_datafile_home2/……………………………
等等
說明:其中default_datafile_home1指oracle_home/dbs;
default_datafile_home2指較為空閑的硬盤資源分區(qū)路徑。
②、物理文件的大小根據(jù)應(yīng)用系統(tǒng)的數(shù)據(jù)量、數(shù)據(jù)對(duì)象、程序包的多少來定。一般用于摹擬演示的小系統(tǒng),表空間初始的物理文件為2M即能滿足要求,假如信息量滿,還可以增加物理文件,擴(kuò)充表空間(每次擴(kuò)充大小也可暫定為2M);一般實(shí)際運(yùn)行的應(yīng)用系統(tǒng)可適當(dāng)增加表空間初始的物理文件大小,但也不要一次分配太大(因?yàn)椴灰谆厥湛臻g,卻易擴(kuò)充空間),這也需要根據(jù)具體情況具體分析:信息量大、需長時(shí)間保存的應(yīng)用在條件答應(yīng)情況下,表空間可以大到幾百M(fèi)甚至上G;信息量小、短期經(jīng)常刷新的應(yīng)用,表空間可以控制在2M以下。
③、表空間的名稱應(yīng)該采用同系統(tǒng)應(yīng)用相似的英文字符或字符縮寫,表空間所對(duì)應(yīng)的一個(gè)或多個(gè)物理文件名也應(yīng)有相關(guān)性。不同用戶所處的缺省表空間不同,存儲(chǔ)的信息就不能互相訪問。這比把所有用戶信息都儲(chǔ)存在系統(tǒng)表空間,安全性大大提高了。假如用ORACLE WEB SERVER治理端口創(chuàng)建的用戶,其缺省和臨時(shí)表空間一定是系統(tǒng)表空間,DBA切記要改變用戶的缺省表空間。臨時(shí)表空間存放臨時(shí)數(shù)據(jù)段,處理一些排序、合并等中間操作,根據(jù)實(shí)際應(yīng)用的需求可以把它們放在專門創(chuàng)建的表空間里;假如系統(tǒng)表空間大,也可以把它們放在系統(tǒng)表空間。用戶創(chuàng)建的數(shù)據(jù)索引最好和數(shù)據(jù)文件分開存放在不同表空間,以減少數(shù)據(jù)爭(zhēng)用和提高響應(yīng)速度。
·密碼和用戶名的規(guī)范
有相當(dāng)數(shù)量的ORACLE用戶名和密碼一致,這是個(gè)很不安全的因素。我們建議ORACLE用戶名和密碼一定不要一樣,密碼最好在五,六位字符以上。不同用戶間不應(yīng)該使用相同的密碼。用戶名的定義可根據(jù)實(shí)際應(yīng)用的英文名來設(shè),而依據(jù)編程人員的姓名定義的用戶名實(shí)際上不規(guī)范,可在日后的工作中結(jié)合上述有關(guān)存儲(chǔ)結(jié)構(gòu)規(guī)范的說明逐步改進(jìn)。
(3)非凡要求用戶的規(guī)范
在ORACLE數(shù)據(jù)庫使用過程中,還會(huì)碰到一些有非凡要求的用戶:非編程人員需要對(duì)某個(gè)表有查詢、增加、刪除、修改的權(quán)利。DBA應(yīng)創(chuàng)建一個(gè)這樣的用戶,先確定用戶名和密碼,再規(guī)定相關(guān)應(yīng)用所在缺省表空間(包含某個(gè)表)和臨時(shí)表空間,最后TABLE屬主給其授權(quán):賦予CONNECT角色SELECT、INSERT、DELETE、UPDATE ON THE TABLE的對(duì)象級(jí)權(quán)限,這可根據(jù)實(shí)際需求自由取舍。
舉例:●給新用戶授于對(duì)象級(jí)權(quán)限(命令行方式):
假設(shè)新用戶NEW2需要有查詢、刪除、修改DCD用戶的表EMP。
%svrmgrl
SVRMGR>connect internal; 以系統(tǒng)治理員登錄
SVRMGR>create user new2 identified by new2345 default tablespace app;
SVRMGR>connect dcd/dcdpwd; 以dcd用戶登錄
SVRMGR>grant connect to new2;
SVRMGR>grant select on emp to new2;
SVRMGR>grant delete on emp to new2;
SVRMGR>grant update on emp to new2;
說了這么多關(guān)于用戶的問題,那么接下來我們就具體得說一下關(guān)于密碼文件的使用以及維護(hù)--在Oracle數(shù)據(jù)庫系統(tǒng)中,用戶假如要以特權(quán)用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle數(shù)據(jù)庫可以有兩種身份驗(yàn)證的方法:即使用與操作系統(tǒng)集成的身份驗(yàn)證或使用Oracle數(shù)據(jù)庫的密碼文件進(jìn)行身份驗(yàn)證。
因此,治理好密碼文件,對(duì)于控制授權(quán)用戶從遠(yuǎn)端或本機(jī)登錄Oracle數(shù)據(jù)庫系統(tǒng),執(zhí)行數(shù)據(jù)庫治理工作,具有重要的意義。
Oracle數(shù)據(jù)庫的密碼文件存放有超級(jí)用戶INTERNAL/SYS的口令及其他特權(quán)用戶的用戶名/口令,它一般存放在ORACLE_HOME/DATABASE目錄下。
·密碼文件的創(chuàng)建:
在使用Oracle Instance Manager創(chuàng)建一數(shù)據(jù)庫實(shí)例的時(shí)侯,在ORACLE_HOME/DATABASE目錄下還自動(dòng)創(chuàng)建了一個(gè)與之對(duì)應(yīng)的密碼文件,文件名為PWDSID.ORA,其中SID代表相應(yīng)的Oracle數(shù)據(jù)庫系統(tǒng)標(biāo)識(shí)符。此密碼文件是進(jìn)行初始數(shù)據(jù)庫治理工作的基礎(chǔ)。在此之后,治理員也可以根據(jù)需要,使用工具ORAPWD.EXE手工創(chuàng)建密碼文件,命令格式如下:
C:/ >ORAPWD FILE=< FILENAME > PASSWord =< PASSWORD > ENTRIES=< MAX_USERS >
各命令參數(shù)的含義為:
FILENAME:密碼文件名;
PASSWord:設(shè)置INTERNAL/SYS帳號(hào)的口令;
MAX_USERS:密碼文件中可以存放的最大用戶數(shù),對(duì)應(yīng)于答應(yīng)以SYSDBA/SYSOPER權(quán)限登錄數(shù)據(jù)庫的最大用戶數(shù)。由于在以后的維護(hù)中,若用戶數(shù)超出了此限制,則需要重建密碼文件,所以此參數(shù)可以根據(jù)需要設(shè)置得大一些。
有了密碼文件之后,需要設(shè)置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態(tài)。
·設(shè)置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE:
在Oracle數(shù)據(jù)庫實(shí)例的初始化參數(shù)文件中,此參數(shù)控制著密碼文件的使用及其狀態(tài)。它可以有以下幾個(gè)選項(xiàng):
NONE:指示Oracle系統(tǒng)不使用密碼文件,特權(quán)用戶的登錄通過操作系統(tǒng)進(jìn)行身份驗(yàn)證;
EXCLUSIVE:指示只有一個(gè)數(shù)據(jù)庫實(shí)例可以使用此密碼文件。只有在此設(shè)置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,即答應(yīng)將系統(tǒng)權(quán)限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。
SHARED:指示可有多個(gè)數(shù)據(jù)庫實(shí)例可以使用此密碼文件。在此設(shè)置下只有INTERNAL/SYS帳號(hào)能被密碼文件識(shí)別,即使文件中存有其他用戶的信息,也不答應(yīng)他們以SYSOPER/SYSDBA的權(quán)限登錄。此設(shè)置為缺省值。
在REMOTE_LOGIN_PASSWORDFILE參數(shù)設(shè)置為EXCLUSIVE、SHARED情況下,Oracle系統(tǒng)搜索密碼文件的次序?yàn)?在系統(tǒng)注冊(cè)庫中查找ORA_SID_PWFILE參數(shù)值(它為密碼文件的全路徑名);若未找到,則查找ORA_PWFILE參數(shù)值;若仍未找到,則使用缺省值ORACLE_HOME/DATABASE/PWDSID.ORA;其中的SID代表相應(yīng)的Oracle數(shù)據(jù)庫系統(tǒng)標(biāo)識(shí)符。
·向密碼文件中增加、刪除用戶:
當(dāng)初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE設(shè)置為EXCLUSIVE時(shí),系統(tǒng)答應(yīng)除INTERNAL/SYS以外的其他用戶以治理員身份從遠(yuǎn)端或本機(jī)登錄到Oracle數(shù)據(jù)庫系統(tǒng),執(zhí)行數(shù)據(jù)庫治理工作;這些用戶名必須存在于密碼文件中,系統(tǒng)才能識(shí)別他們。由于不管是在創(chuàng)建數(shù)據(jù)庫實(shí)例時(shí)自動(dòng)創(chuàng)建的密碼文件,還是使用工具ORAPWD.EXE手工創(chuàng)建的密碼文件,都只包含INTERNAL/SYS用戶的信息;為此,在實(shí)際操作中,可能需要向密碼文件添加或刪除其他用戶帳號(hào)。
由于僅被授予SYSOPER/SYSDBA系統(tǒng)權(quán)限的用戶才存在于密碼文件中,所以當(dāng)向某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權(quán)限時(shí),他們的帳號(hào)也將相應(yīng)地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實(shí)際上也就是對(duì)某一用戶授予或收回SYSOPER/SYSDBA系統(tǒng)權(quán)限。
要進(jìn)行此項(xiàng)授權(quán)操作,需使用SYSDBA權(quán)限(或INTERNAL帳號(hào))連入數(shù)據(jù)庫,且初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE的設(shè)置必須為EXCLUSIVE。具體操作步驟如下:
創(chuàng)建相應(yīng)的密碼文件;
設(shè)置初始化參數(shù)REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;
使用SYSDBA權(quán)限登錄: CONNECT SYS/internal_user_passsword AS SYSDBA;
啟動(dòng)數(shù)據(jù)庫實(shí)例并打開數(shù)據(jù)庫;
創(chuàng)建相應(yīng)用戶帳號(hào),對(duì)其授權(quán)(包括SYSOPER和SYSDBA): 授予權(quán)限:GRANT SYSDBA TO user_name;
收回權(quán)限:REVOKE SYSDBA FROM user_name;
現(xiàn)在這些用戶可以以治理員身份登錄數(shù)據(jù)庫系統(tǒng)了;
·使用密碼文件登錄:
有了密碼文件后,用戶就可以使用密碼文件以SYSOPER/SY