第四章 数据库安全
数据控制语言?(DCL)
授权—GRANT
GRANT语句的一般格式: GRANT <权限>[,<权限>]... [ON <对象类型> <对象名>] TO <用户>[,<用户>]... [WITH GRANT OPTION]; 语义:将对指定操作对象的指定操作权限授予指定的用户
发出GRANT:
-
DBA
-
数据库对象创建者(即属主Owner)
-
拥有该权限的用户
按受权限的用户:
-
一个或多个具体用户
-
PUBLIC(全体用户)
WITH GRANT OPTION子句:
-
指定:可以再授予
-
没有指定:不能传播
不允许循环授权:
把查询Student表权限授给用户U1 GRANT SELECT ON TABLE Student TO U1; 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3; 把查询Student表和修改学生学号的权限授给用户U4 对属性列的授权时必须明确指出相应属性列名 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4; 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
回收—REVOKE
授予的权限可以由DBA或其他授权者用REVOKE语句收回 REVOKE语句的一般格式为:
REVOKE <权限>[,<权限>]... [ON <对象类型> <对象名>] FROM <用户>[,<用户>]...;