SQL高階部分一(控制使用者許可權)
阿新 • • 發佈:2019-02-05
建立使用者
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 子句所分配的許可權同樣被收回
SQL示例REVOKE {privilege [, privilege...]|ALL} ON object FROM {user[, user...]|role|PUBLIC} [CASCADE CONSTRAINTS];
SQL> revoke select
2 on scott.employees
3 from wang;