時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
創(chuàng)建與管理用戶賬戶
用戶是Oracle數(shù)據(jù)庫(kù)管理的常用要求之一,能夠連接到數(shù)據(jù)庫(kù)的每一個(gè)用戶都必須是系統(tǒng)的合法用戶。用戶要想使用Oracle的管理系統(tǒng),必須要擁有相應(yīng)的權(quán)限。創(chuàng)建用戶并授予權(quán)限是Oracle系統(tǒng)管理員的常用任務(wù)之一。
1.1 配置身份驗(yàn)證
Oracle為用戶賬戶提供了三種身份驗(yàn)證方法。
?。?)密碼驗(yàn)證
當(dāng)一個(gè)使用密碼驗(yàn)證機(jī)制的用戶試圖連接到數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)會(huì)核實(shí)用戶名是否是一個(gè)有效的數(shù)據(jù)庫(kù)賬戶,并且提供與該用戶在數(shù)據(jù)庫(kù)中存儲(chǔ)的密碼相匹配的密碼。
由于用戶信息和密碼都存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi)部,所以密碼驗(yàn)證用戶也稱(chēng)為數(shù)據(jù)庫(kù)驗(yàn)證用戶。
?。?)外部驗(yàn)證
當(dāng)一個(gè)外部驗(yàn)證式用戶試圖連接到數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)會(huì)核實(shí)用戶名是否是一個(gè)有效的數(shù)據(jù)庫(kù)賬戶,并確信該用戶已經(jīng)完成了操作系統(tǒng)級(jí)別的身份驗(yàn)證。
注意,外部驗(yàn)證式用戶并不在數(shù)據(jù)庫(kù)中存儲(chǔ)一個(gè)驗(yàn)證密碼。
?。?)全局驗(yàn)證
全局驗(yàn)證式用戶也不在數(shù)據(jù)庫(kù)中存儲(chǔ)驗(yàn)證密碼,這種類(lèi)型的驗(yàn)證是通過(guò)一個(gè)高級(jí)安全選項(xiàng)所提供的身份驗(yàn)證服務(wù)來(lái)進(jìn)行的。
在上述的三種驗(yàn)證方式中,密碼驗(yàn)證是最常使用的驗(yàn)證用戶的方法,也是我們將要詳細(xì)介紹的。除非特別聲明,本書(shū)中所創(chuàng)建和使用的用戶都是密碼驗(yàn)證用戶。
另外兩種驗(yàn)證一般很少使用,在這里僅簡(jiǎn)單列出,有興趣的讀者可以查閱Oracle的官方文檔。
1.2 創(chuàng)建用戶的語(yǔ)法
要?jiǎng)?chuàng)建一個(gè)新的用戶(密碼驗(yàn)證用戶),可以采用CREATE USER命令。
CREATE USER username IDENTIFIED BY password
OR IDENTIFIED EXETERNALLY
OR IDENTIFIED GLOBALLY AS ‘CN=user’
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE temptablespace]
[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[PROFILES profile_name]
[PASSWORD EXPIRE]
[ACCOUNT LOCK or ACCOUNT UNLOCK]
其中,
????? CREATE USER username:用戶名,一般為字母數(shù)字型和"#"及"_"符號(hào)。
????? IDENTIFIED BY password:用戶口令,一般為字母數(shù)字型和"#"及"_"符號(hào)。
????? IDENTIFIED EXETERNALLY:表示用戶名在操作系統(tǒng)下驗(yàn)證,該用戶名必須與操作系統(tǒng)中所定義的用戶名相同。
????? IDENTIFIED GLOBALLY AS ‘CN=user’:用戶名由Oracle安全域中心服務(wù)器驗(yàn)證,CN名字表示用戶的外部名。
????? [DEFAULT TABLESPACE tablespace]:默認(rèn)的表空間。
????? [TEMPORARY TABLESPACE tablespace]:默認(rèn)的臨時(shí)表空間。
????? [QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace:用戶可以使用的表空間的字節(jié)數(shù)。
????? [PROFILES profile_name]:資源文件的名稱(chēng)。
????? [PASSWORD EXPIRE]:立即將口令設(shè)成過(guò)期狀態(tài),用戶再登錄前必須修改口令。
????? [ACCOUNT LOCK or ACCOUNT UNLOCK]:用戶是否被加鎖,默認(rèn)情況下是不加鎖的。
1.3 創(chuàng)建用戶實(shí)例
本節(jié)通過(guò)具體實(shí)例演示如何創(chuàng)建數(shù)據(jù)庫(kù)用戶。
?。?)創(chuàng)建用戶,指定默認(rèn)表空間和臨時(shí)表空間。
創(chuàng)建用戶名為guord,口令為12345,默認(rèn)表空間為system,臨時(shí)表空間為T(mén)EMP的用戶。
示例1:
CREATE USER guord IDENTIFIED BY 12345
DEFAULT TABLESPACE system
TEMPORARY TABLESPACE TEMP;
有時(shí),為了避免用戶在創(chuàng)建表和索引對(duì)象時(shí)占用過(guò)多的空間,可配置用戶在表空間上的磁盤(pán)限額,在創(chuàng)建用戶時(shí)通過(guò)QUOTA xxxM ON tablespace_name 子句即可。
?。?)創(chuàng)建用戶,并配置磁盤(pán)限額。
創(chuàng)建一個(gè)用戶名為guord,口令為12345,默認(rèn)表空間為system,臨時(shí)表空間為T(mén)EMP的用戶,并且不允許該用戶使用Users表空間。
示例2:
CREATE USER guord IDENTIFIED BY 12345
DEFAULT TABLESPACE system
TEMPORARY TABLESPACE TEMP
QUOTA 0 ON users;
#p#副標(biāo)題#e#
?。?)配置用戶在指定表空間上不受限制。
創(chuàng)建一個(gè)用戶名為test,口令為12345,默認(rèn)表空間為users,并且該用戶使用users表空間不受限制。
示例3:
CREATE USER test IDENTIFIED BY 12345
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
在創(chuàng)建用戶時(shí),以下幾點(diǎn)特別需要特別注意。
????? 初始建立的數(shù)據(jù)庫(kù)用戶沒(méi)有任何權(quán)限,不能執(zhí)行任何數(shù)據(jù)庫(kù)操作。
????? 如果建立用戶時(shí)不指定DEFAULT TABLESPACE子句,Oracle會(huì)將SYSTEM表空間作為用戶默認(rèn)表空間。
????? 如果建立用戶時(shí)不指定TEMPORARY TABLESPACE子句,Oracle會(huì)將數(shù)據(jù)庫(kù)默認(rèn)臨時(shí)表空間作為用戶的臨時(shí)表空間。
????? 如果建立用戶時(shí)沒(méi)有為表空間指定QUOTA子句,那么用戶在特定表空間上的配額為0,用戶將不能在相應(yīng)表空間上建立數(shù)據(jù)對(duì)象。
????? 初始建立的用戶沒(méi)有任何權(quán)限,所以為了使用戶可以連接到數(shù)據(jù)庫(kù),必須授權(quán)其CREATE SESSION權(quán)限,我們將在15.2節(jié)中講述。
1.4 修改用戶語(yǔ)法與實(shí)例
用戶創(chuàng)建完成后,管理員可以對(duì)用戶進(jìn)行修改,包括修改用戶口令、改變用戶默認(rèn)表空間、臨時(shí)表空間、磁盤(pán)配額及資源限制等。修改用戶的命令語(yǔ)法如下。
ALTER USER username IDENTIFIED BY password
OR IDENTIFIED EXETERNALLY
OR IDENTIFIED GLOBALLY AS ‘CN=user’
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE temptablespace]
[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[PROFILES profile_name]
[PASSWORD EXPIRE]
[ACCOUNT LOCK or ACCOUNT UNLOCK]
[DEFAULT ROLE role[,role]]
OR [DEFAULT ROLE ALL [EXCEPT role[,role]]]
OR [DEFAULT ROLE NOTE]
其中,各個(gè)參數(shù)的含義讀者可以參照前面CRREATE USER語(yǔ)法中的解釋?zhuān)@里不再贅述。
如果DBA在創(chuàng)建用戶時(shí),指定了用戶在某個(gè)表空間的磁盤(pán)限額,那么經(jīng)過(guò)一段時(shí)間,該用戶使用該表空間已經(jīng)達(dá)到了DBA所設(shè)置的磁盤(pán)限額時(shí),Oracle系統(tǒng)會(huì)給出類(lèi)似于下面的錯(cuò)誤提示。
ORA-01536:SPACE QUOTA EXCEEDED FOR TABLESPACE ‘USERS’
此時(shí),DBA應(yīng)該及時(shí)通過(guò)ALTER USER命令增加用戶在該表空間中的使用限額。
?。?)修改用戶的磁盤(pán)限額。
當(dāng)Oracle系統(tǒng)提示ORA-01536錯(cuò)誤時(shí),表示該用戶的資源超出限額,需要為用戶增加資源。
示例1:
SQL>SQLPLUS SYSTEM/password
SQL>ALTER USER wbtest QUOTA 100M ON USERS;
通過(guò)上述命令,將用戶wbtest在USERS表空間上的磁盤(pán)限額擴(kuò)展到100M。
?。?)修改用戶的口令。
將SCOTT用戶的口令改為tigerabc。
示例2:
SQL>alter user scott identified by tigerabc;
Oracle默認(rèn)安裝完成后,為了安全起見(jiàn),很多用戶處于LOCKED狀態(tài),可以對(duì)LOCKED狀態(tài)的用戶解除鎖定。
(3)查詢Oracle系統(tǒng)中被鎖住的用戶信息。
示例3:
SQL>select username,account_status,lock_date from dba_users;
USERNAME?? ACCOUNT_STATUS?? LOCK_DTAE
--------------------------------------------------------------------------------------
SYS???? OPEN
SYSTEM????? OPEN
DBSNMP????? OPEN
HOUSE? OPEN
SCOTT? OPEN
OE????? OPEN
OUTLN? EXPIRED&LOCKED 18-8月 -07
WMSYS? EXPIRED&LOCKED 18-8月
關(guān)鍵詞標(biāo)簽:oracle用戶管理
相關(guān)閱讀
熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法