时间:2021-07-01 10:21:17 帮助过:20人阅读
1、GRANT语句
GRANT语句一般模式:
GRANT <权限>[,权限...]
ON <对象类型><对象名>[,<对象类型><对象名>...]
TO <用户>[,<用户>]
[WITH GRANT OPTION];
--这里授予的用户可以是所有用户PUBLIC
--WITH GRANT OPTION语句是指获得该权限的用户还可以把这种权限再授予其他用户,如果没有该子句,则获得权限的用户不能传播该权限
--举些例子
--把查询Student表的权限授予给U1
GRANT SELECT
ON TABLE Student
TO U1;
--把Student表和Course表的所有权限授予给用户U2和U3
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U2,U3
--把对SC表的查询权限授予给所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
--把查询Student表和修改学生学号的权限授权给用户U4,对属性列授权时必须明确指出相应的属性列
GRANT SELECT,UPDATE(Sno)
ON TABLE Student
TO U4;
--把对SC表的INSERT权限授予给用户U5,并允许U5将此权限再授予给其他用户
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;
--用户U5将INSERT权限授予给用户U6,U6授权给U7
GRANT INSERT
ON TABLE SC
TO U6
WITH GRANT OPTION;
GRANT INSERT
ON TABLE SC
TO U7;
2、REVOKE语句
REVOKE语句的一般模式:
REVOKE <权限>[,权限...]
ON <对象类型><对象名>[,<对象类型><对象名>...]
FROM <用户>[,<用户>...[CASCADE|RESTRICT]];
--把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4
--收回所有用户对表SC的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
--把用户U5对SC表的INSERT权限收回
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE;
--这里的CASCADE语句是级联收回U6和U7对SC表的INSERT权限,如果不级联收回,鉴于前面U6和U7的权限是级联授予的,系统就会拒绝执行该命令
3、创建数据库模式权限
CREATE USER <username>[WITH][DBA|RESOURCE|CONNECT];
4、角色的创建
--创建一个角色
CREATE ROLE <角色名>
--给角色授权,与给用户授权一样
GRANT <权限>[,<权限>]...
ON <对象名>[,<对象名>]
TO <角色>[,<角色>]...
--将一个角色授予给另一个角色,这样另一个角色的权限是授权角色权限的总和
GRANT <角色1>[,<角色2>]...
TO <角色3>[,<用户1>]...
[WITH ADMIN OPTION]
--角色权限的收回
REVOKE <权限>[,<权限>]...
ON <对象类型><对象名>
FROM <角色>[,<角色>]...
--举些例子
--首先创建一个角色R1
CREATE ROLE R1;
--授予角色R1对于Student表的INSERT、UPDATE、SELECT
GRANT INSERT,UPDATE,SELECT
ON TABLE