Oracle數(shù)據(jù)庫下用戶操作
新增用戶
前置條件
- 首先登陸到系統(tǒng)用戶sys(sys用戶具有創(chuàng)建用戶的權(quán)限)。
- 然后在SQL語句輸入框?qū)懭雱?chuàng)建用戶的代碼。
語法
- CREATE USER user_name IDENTIFIED BY password
- [ACCOUNT LOCK|UNLOCK] lock:給用戶上鎖;unlock:解鎖用戶。(和connnect角色無關(guān))
- [DEFAULT TABLESPACE default_tablespace] default_tablespace:用戶的默認(rèn)表空間,用于儲存數(shù)據(jù)庫對象。如果忽略此參數(shù),則默認(rèn)存儲到SYSTEM表空間
- [TEMPORARY TABLESPACE temporary_tablespace]; temporary_tablespace:是臨時對象默認(rèn)存儲的表空間,包括臨時表。如果忽略此參數(shù),則默認(rèn)存儲到SYSTEM表空間
示例
CREATE USER student IDENTIFIED BY 123456;創(chuàng)建了一個student用戶,登陸密碼為123456.
查看用戶
查看擁有DBA權(quán)限的用戶
select username,user_id,password,default_tablespace from dba_users;
查看當(dāng)前登錄用戶
select * from user_role_privs;
通過角色控制用戶權(quán)限
- Connect 臨時會話角色,對于那些不需要建表的用戶,通常只賦予他們CONNECT角色,擁有CONNECT角色可以與服務(wù)器建立連接會話。
- Resource 更可靠的和正式的用戶可以授予RESOURCE角色.RESOURCE角色提供給用戶創(chuàng)建表,序列,過程(procedure),觸發(fā)器(tigger),索引(index)等。
- DBA 所有的系統(tǒng)權(quán)限,用戶system和sys擁有DBA角色。
說明:
Scott擁有connect和Resource兩個角色,可以應(yīng)對大部分的開發(fā)場景;
Grant connect/resource/dba to Scott;
給用戶分配權(quán)限
- 如果想讓用戶在數(shù)據(jù)庫里完成一些任務(wù),需要相應(yīng)的給用戶授予權(quán)限。如:如果想讓用戶連接到數(shù)據(jù)庫,必須授予用戶CREATE SESSION的系統(tǒng)權(quán)限。
- 授權(quán)必須通過一些特殊用戶授權(quán)(例如SYSTEM),通過GRANT語句來完成。下表列出了用戶可能用到的權(quán)限。
語法
- GRANT CREATE SESSION TO student;
- 給用戶student分配連接的權(quán)限。
權(quán)限列表
- CREATE SESSION(連接到數(shù)據(jù)庫)
- CREATE SEQUENCE
- CREATE SYNONYM
- CREATE TABLE(在用戶架構(gòu)中創(chuàng)建表)
- CREATE ANY TABLE(在任意架構(gòu)中創(chuàng)建表)
- DROP TABLE
- DROP ANY TABLE
- CREATE PROCEDURE(創(chuàng)建存儲過程)
- EXECUTE ANY PROCEDURE
- CREATE USER
- DROP USER
- CREATE VIEW
撤銷用戶權(quán)限
REVOKE CONNECT FROM Scott;