SQL 基础之用户角色日常操作(十六)
在數(shù)據(jù)庫(kù)管理中一定本著一個(gè)原則就是權(quán)限最小化的原則,如果有需要在賦予相應(yīng)的權(quán)限
數(shù)據(jù)庫(kù)管理員日常對(duì)于用戶的管理任務(wù)如下:
– 創(chuàng)建新用戶
– 刪除用戶
– 刪除表
– 備份表
1、創(chuàng)建用戶yuri,并設(shè)置密碼為password。
create user ?yuri?identified by password;
2、用戶創(chuàng)建之后, DBA 會(huì)賦予用戶一些系統(tǒng)權(quán)限
以應(yīng)用程序開發(fā)者為例, 一般具有下列系統(tǒng)權(quán)限:
- create session
-create table
-create sequence
-create view
-create procedure
例如:賦予用于yuri如下權(quán)限
grant create session, create table, create sequence, create view to yuri;
二、角色的作用
角色的目的是定義了一個(gè)有哪些權(quán)限的角色,并把用戶指定為這個(gè)角色。方便統(tǒng)一管理
1、創(chuàng)建角色
create role mang;
2、賦予角色權(quán)限
grant create table, create view to mang;
3、將角色授予用戶
grant mang to yuri
DBA 可以創(chuàng)建用戶和修改密碼。
用戶自己可以使用 ALTER USER 語句修改密碼。
4、將yuri用戶的密碼改為1q2w3e
alter user yuri identified by 1q2w3e;
對(duì)象權(quán)限
| 對(duì)象權(quán)限 | Table | View | Sequence |
| ALTER | |||
| DELETE | |||
| INDEX | |||
| INSERT | |||
| REFERENCES | |||
| SELECT | |||
| UPDATE |
不同的對(duì)象具有不同的對(duì)象權(quán)限
對(duì)象的擁有者擁有所有權(quán)限
對(duì)象的擁有者可以向外分配權(quán)限
語法:
grant object_priv [(columns)] on object to {user|role|public} [with grant option];
1、賦予查詢employees表的權(quán)限給yuri用戶
?grant select on employees to yuri;
授予指定的列給yuri用戶和mang角色,更新department_name和location_id的權(quán)限
grant update (department_name, location_id) on departments to yuri, mang;
WITH GRANT OPTION 和 和 PUBLIC ?關(guān)鍵字
WITH GRANT OPTION 使用戶同樣具有分配權(quán)限的權(quán)利
?grant select, insert on departments to demo with grant option;
向數(shù)據(jù)庫(kù)中所有用戶分配權(quán)限
?grant select on alice.departments to public;
確認(rèn)授予的權(quán)限
| 數(shù)據(jù)字典視圖 | 描述 |
| ROLE_SYS_PRIVS | 角色擁有的系統(tǒng)權(quán)限 |
| ROLE_TAB_PRIVS | 角色擁有的對(duì)象權(quán)限 |
| USER_ROLE_PRIVS | 用戶擁有的角色 |
| USER_SYS_PRIVS | 用戶擁有的系統(tǒng)權(quán)限 |
| USER_TAB_PRIVS_MADE | 用戶分配的關(guān)于表對(duì)象權(quán)限 |
| USER_TAB_PRIVS_RECD | 用戶擁有的關(guān)于表對(duì)象權(quán)限 |
| USER_COL_PRIVS_MADE | 用戶分配的關(guān)于列的對(duì)象權(quán)限 |
| USER_COL_PRIVS_RECD | 用戶擁有的關(guān)于列的對(duì)象權(quán)限 |
?撤銷對(duì)象權(quán)限
?使用 REVOKE 語句撤銷權(quán)限
?使用 WITH GRANT OPTION 子句所分配的權(quán)限同樣被收回
語法:
revoke {privilege [, privilege...]|all} on object from {user[, user...]|role|public} [cascade constraints];
1、撤銷授予給 yuri 用戶 employees 表的 SELECT 和 INSERT 權(quán)限。
revoke select ,instert ?on employees from yuri;
轉(zhuǎn)載于:https://blog.51cto.com/laobaiv1/1910375
總結(jié)
以上是生活随笔為你收集整理的SQL 基础之用户角色日常操作(十六)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 郑州尚学堂:JAVA常用4种排序方法
- 下一篇: ASP.NET MVC 5 實作 Gri