Oracle使用者與許可權

weixin_34402408發表於2017-04-30

Oracle資料庫下使用者操作

新增使用者

前置條件

  • 首先登陸到系統使用者sys(sys使用者具有建立使用者的許可權)。
  • 然後在SQL語句輸入框寫入建立使用者的程式碼。

語法

  • CREATE USER user_name IDENTIFIED BY password
  • [ACCOUNT LOCK|UNLOCK]   lock:給使用者上鎖;unlock:解鎖使用者。(和connnect角色無關)
  • [DEFAULT TABLESPACE default_tablespace]  default_tablespace:使用者的預設表空間,用於儲存資料庫物件。如果忽略此引數,則預設儲存到SYSTEM表空間
  • [TEMPORARY TABLESPACE temporary_tablespace];  temporary_tablespace:是臨時物件預設儲存的表空間,包括臨時表。如果忽略此引數,則預設儲存到SYSTEM表空間

示例

CREATE USER student IDENTIFIED BY 123456;建立了一個student使用者,登陸密碼為123456.

檢視使用者

檢視擁有DBA許可權的使用者

select username,user_id,password,default_tablespace from dba_users;

檢視當前登入使用者

select * from user_role_privs;

通過角色控制使用者許可權

  • Connect 臨時會話角色,對於那些不需要建表的使用者,通常只賦予他們CONNECT角色,擁有CONNECT角色可以與伺服器建立連線會話。
  • Resource 更可靠的和正式的使用者可以授予RESOURCE角色.RESOURCE角色提供給使用者建立表,序列,過程(procedure),觸發器(tigger),索引(index)等。
  • DBA 所有的系統許可權,使用者system和sys擁有DBA角色。

說明:
Scott擁有connect和Resource兩個角色,可以應對大部分的開發場景;
Grant connect/resource/dba to Scott;

給使用者分配許可權

  • 如果想讓使用者在資料庫裡完成一些任務,需要相應的給使用者授予許可權。如:如果想讓使用者連線到資料庫,必須授予使用者CREATE SESSION的系統許可權。
  • 授權必須通過一些特殊使用者授權(例如SYSTEM),通過GRANT語句來完成。下表列出了使用者可能用到的許可權。

語法

  • GRANT CREATE SESSION TO student;
  • 給使用者student分配連線的許可權。

許可權列表

  • CREATE SESSION(連線到資料庫)
  • CREATE SEQUENCE
  • CREATE SYNONYM
  • CREATE TABLE(在使用者架構中建立表)
  • CREATE ANY TABLE(在任意架構中建立表)
  • DROP TABLE
  • DROP ANY TABLE
  • CREATE PROCEDURE(建立儲存過程)
  • EXECUTE ANY PROCEDURE
  • CREATE USER
  • DROP USER
  • CREATE VIEW

撤銷使用者許可權

REVOKE CONNECT FROM Scott;

相關文章