介紹
本篇文章主要介紹在oracle中怎樣使用語句建立使用者,如果你是資料庫運維人員那麼這是必須掌握的,順便提一下在oracle中資料庫的概念它和其它資料庫系統比如mysql和sqlserver不一樣,在oracle中可以將使用者理解成其它的資料庫系統中的資料庫的概念,oracle中只有一個全域性資料庫並且不能再建立其它資料庫了,再建立一個資料庫就相當於再重新安裝一套資料庫服務。
資料庫版本:oracle11gR2
基本語法:
CREATE USER user IDENTIFIED { BY password | EXTERNALLY [ AS 'certificate_DN' ] | GLOBALLY [ AS '[ directory_DN ]' ] } [ DEFAULT TABLESPACE tablespace | TEMPORARY TABLESPACE { tablespace | tablespace_group_name } | { QUOTA { size_clause | UNLIMITED } ON tablespace }... | PROFILE profile | PASSWORD EXPIRE | ACCOUNT { LOCK | UNLOCK } ] ;
QUOTA:設定使用者表空間限額,size_clause的單位可以是K|M,預設是UNLIMITED不限制
PASSWORD EXPIRE:設定使用者第一次登入後必須修改登入密碼
PROFILE profile:指定使用者的profile檔案
建立使用者
--表空間路徑根據實際修改 CREATE SMALLFILE TABLESPACE chenmh DATAFILE 'D:\ORACLE\ORADATA\ORCL\chenmh01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED; CREATE USER chenmh IDENTIFIED BY chenmh DEFAULT TABLESPACE chenmh TEMPORARY TABLESPACE temp; /*授予使用者會話連線、建立表、建立檢視、建立序列、建立儲存過程、建立檢視,表空間不限制*/ grant create session,create table,create view,create sequence,create procedure,create trigger,unlimited tablespace to chenmh;
或者
grant connect,resource,unlimited tablespace to chenmh;
---除錯許可權
grant DEBUG CONNECT SESSION TO chenmh; --grant select on v_$session to chenmh; --grant select on v_$sesstat to chenmh; --grant select on v_$statname to chenmh;
刪除使用者
drop user base;
如果使用者存在物件不能刪除可以加上cascade同時刪除使用者下的物件,例如:
drop user base cascade;
授予架構的許可權給其它使用者
1.授予A架構表TEST的增、刪、改、查、修改許可權給B使用者
GRANT SELECT,UPDATE,INSERT,DELETE,alter ON A.TEST TO B;
2.授予A架構表TEST的所有許可權給B使用者
GRANT ALL ON A.TEST TO B;
注意:all也就是等於上面的增、刪、改、查、修改許可權,不具備DROP許可權。
總結
如果你想在oracle中實現其它資料庫系統那樣建立新的資料庫那麼你就只能用建立使用者來代替了。 oracle當前使用者擁有當前使用者下的所有許可權,無論表是否是當前使用者所建立也具備drop許可權。
備註: 作者:pursuer.chen 部落格:http://www.cnblogs.com/chenmh 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。 《歡迎交流討論》 |