1. 程式人生 > >SQL高階部分一(控制使用者許可權)

SQL高階部分一(控制使用者許可權)

建立使用者

SQL> create user 使用者名稱
  2  identified by 密碼;
賦予使用者許可權
SQL> GRANT create table,create view,create sequence , create session --許可權
  2  TO 使用者名稱;
使用者擁有建立表許可權後,還需要賦予使用者表空間才能建立表
ALTER USER 使用者名稱 QUOTA 空間大小
ON 什麼表
SQL> ALTER USER wang QUOTA unlimited 
  2  ON users;
PS:unlimited無限制,也可以指定多少K。

角色:當不使用角色時,有3個人需要3個許可權,就必須把每個許可權都賦予使用者,而使用角色,就可以把這三個許可權都賦予角色,直接把角色賦予使用者
建立角色


CREATE ROLE 角色;
SQL> create role wang1;
給角色賦予許可權
SQL> GRANT create table,create session , create view
  2  TO wang1;
將角色賦予使用者
GRANT 角色 TO 使用者;

DBA 可以建立使用者和修改密碼
使用者本人可以使用 ALTER USER 語句修改密碼
ALTER USER 使用者名稱			  
IDENTIFIED BY 新密碼;
alter user wang
identfitied by wang

物件許可權
不同的物件具有不同的物件許可權
物件的擁有者擁有所有許可權
物件的擁有者可以向外分配許可權

DBA擁有scott物件,那麼DBA就可以把scott物件的許可權賦給其他

GRANT	object_priv [(columns)]許可權
ON	object     物件
TO	{user|role|PUBLIC} 使用者/角色/所有使用者

--WITH GRANT OPTION 使使用者同樣具有分配許可權的權利,簡單說,我分享給你了,我允許你也可以分享給別人


分配scott的employees表的查詢許可權給使用者wang

SQL> grant select 
  2  on scott.employees
  3  to wang;

收回物件許可權
使用 REVOKE 語句收回許可權
使用 WITH GRANT OPTION 子句所分配的許可權同樣被收回
REVOKE {privilege [, privilege...]|ALL}
ON	  object

FROM   {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
SQL示例
SQL> revoke select 
  2  on scott.employees
  3  from wang;