創建用戶
oracle中創建用戶語法如下:
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:用戶名,一般爲字母數字型和“#”及“_”符號。
IDENTIFIED BY password:用戶口令,一般爲字母數字型和“#”及“_”符號。
IDENTIFIED EXETERNALLY:表示用戶名在操作系統下驗證,該用戶名必須與操作系統中所定義的用戶名相同。
IDENTIFIED GLOBALLY AS ‘CN=user’:用戶名由Oracle安全域中心服務器驗證,CN名字表示用戶的外部名。
[DEFAULT TABLESPACE tablespace]:默認的表空間。
[TEMPORARY TABLESPACE tablespace]:默認的臨時表空間。
[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace:用戶可以使用的表空間的字節數。
[PROFILES profile_name]:資源文件的名稱。
[PASSWORD EXPIRE]:立即將口令設成過期狀態,用戶再登錄前必須修改口令。
[ACCOUNT LOCK or ACCOUNT UNLOCK]:用戶是否被加鎖,默認情況下是不加鎖的。
創建用戶實例
(1)創建用戶,指定默認表空間和臨時表空間。
創建用戶名爲wang,口令爲wbtest,默認表空間爲users,臨時表空間爲TEMP的用戶。
示例1:
CREATE USER wang IDENTIFIED BY wbtest
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE TEMP;
在創建用戶時通過QUOTA xxxM ON tablespace_name 子句即可。
(2)創建用戶,並配置磁盤限額。
創建一個用戶名爲wbtest,口令爲wbtest,默認表空間爲users,臨時表空間爲TEMP的用戶,並且不 允許該用戶使用SYSTEM表空間。
示例2:
CREATE USER wbtest IDENTIFIED BY wbtest
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE TEMP
QUOTA 0 ON SYSTEM;
(3)配置用戶在指定表空間上不受限制。
創建一個用戶名爲test,口令爲test,默認表空間爲users,並且該用戶使用users表空間不受限制
示例3:
CREATE USER test IDENTIFIED BY test
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
在創建用戶時,以下幾點特別需要特別注意。
初始建立的數據庫用戶沒有任何權限,不能執行任何數據庫操作。
如果建立用戶時不指定DEFAULT TABLESPACE子句,Oracle會將SYSTEM表空間作爲用戶默認表空間。
如果建立用戶時不指定TEMPORARY TABLESPACE子句,Oracle會將數據庫默認臨時表空間作爲用戶的臨時表空間。
如果建立用戶時沒有爲表空間指定QUOTA子句,那麼用戶在特定表空間上的配額爲0,用戶將不能在相應表空間上建立數據對象。
初始建立的用戶沒有任何權限,所以爲了使用戶可以連接到數據庫,必須授權其CREATE SESSION權限
修改用戶密碼
alter user username identified by password;
ORA-01045:user users lacks CREATE SESSION privilege;logon denied問題的解決方案
上訴問題是由於系統創建了用戶users,但是沒有給用戶users賦予connect,resource權限導致,分配權限即可解決
grant connect,resource to users