数据库安全
授予权限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# PUBLIC(全体用户)
grant <权限>[,<权限>]…
[on <对象类型> <对象名>]
to <用户>[,<用户> …]
[with grant option];
# 把查询Students表的权限授给用户wang
grant select on table Students to wang;
# 把对Students和SC表的所有访问权限授给全部用户
grant all priviliges on table Students, SC to public;
# DBA把在数据库SC中建立表的权限授予用户zhao
grant createtab on database SC to zhao;
# DBA、对象的建立者和经过with grant option授权的用户可以把他们对该对象具有的操作权限授予其它的合法用户
# 把对表SC的查询权限、修改成绩权限授给wang和zhang, 并允许wang和zhang将该权限授予他人
grant select, update(Grade) on table SC
to wang, zhang
with grant option;
回收操作
1
2
3
4
5
6
7
8
9
revoke <权限>[,<权限>]…
[on <对象类型> <对象名>]
from <用户>[,<用户> …]
# 把用户wang和zhang修改成绩的权限收回
revoke update(Grade) on table SC from wang, zhang;
# 收回所有用户对SC表的查询授权
revoke SELECT on TABLE SC from PUBLIC;
# 注:授权回收操作是级联的
视图机制
1
2
3
4
5
6
7
8
9
10
11
# 先建立计算机系学生的视图CS_Student
CREATE VIEW CS_Student
AS
SELECT
FROM Student
WHERE Sdept=‘CS’;
# 在视图上进一步定义存取权限
GRANT SELECT ON CS_Student TO USER1