数据库之授权与回收
作者:TiBBers-提伯斯
第一次写博客,如有错误请联系作者,最近刚刚复习这个,因此分享一下,希望能帮到你。
用户权限是由两个要素组成:数据库对象和操作类型,定义存取权限称为授权(authorization)
存储的对象不仅仅有数据本身(基本表中的数据,属性列上的数据),还有数据库模式(包括数据库,基本表,视图和索引的创建等)
对象类型 | 对象 | 操作类型 |
---|---|---|
数据库模式 | 模式 | CREATE SHCEMA |
基本表 | CREATE TABLE,ALERT TABLE | |
视图 | CREATE VIEW | |
索引 | CREATE INDEX | |
数据 | 基本表和视图 | SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL PRIVILEGES |
属性列 | SELECT,INSERT,UPDATE,REFERENCES,ALL PRIVILEGES |
创建角色:
CREATE ROLE<角色名>
//刚刚创建的角色是空的,没有任何内容,可以用GRANT为角色授权
授权与收回:
授权
1.GRANT:
GRANT语句一般的格式:
//给角色授权
GRANT<权限>[,<权限>]...
ON<对象类型><对象名>[,<对象类型><对象名>]...
TO<用户>[,<用户>]...
[WITH GRANT OPTION];
//将一个角色授予其他角色或用户
GRANT <角色1>[,<角色2>]...
TO <角色3>[<用户1>]...
[WITH GRANT OPTION];
注意:
如上角色3将拥有角色3本身全部的权限和角色1和角色2的权限
例子:
//把查询Student表的权限授权给用户UI
GRANT SELECT
ON TABLE Student
TO UI;
收回权限
2.REVOKE:
REVOKE一般格式:
REVOKE <权限>[,<权限>]...
ON<对象类型><对象名>[,<对象类型><对象名>]...
FROM <用户>[,<用户>]...[CASCADE|RESTRICT];