1.
GRANT <权限>
ON <对象类型> <对象名>
TO <用户>
[WITH GRANT OPTION]
如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他用户,允许用户传递权限,但是不允许循环授权。
例1:把查询Student表的权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
例2:把全部操作权限授予用户U2和U3
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U2,U3;
例3:把查询权限授予所有用户
GRANT SELECT
ON TABLE SC
TO PUBLIC;
例5:把INSERT权限授予用户U5,并允许将此权限再授予其他用户
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;
2.权限的收回 REVOKE
REVOKE <权限>
ON <对象类型> <对象名>
FROM <用户>
例6:收回所有用户对表sc的查询权限
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
例7:收回用户U5的权限
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE;
将用户U5的权限收回时必须级联收回CASCADE.
3.对用户模式的授权则由DBA在创建用户时实现
CREATE USER <username>
[WITH] [DBA|RESOURCE|CONNECT]
只有系统的超级用户才有权创建一个新的数据库用户
新创建的用户有三种权限:DB,|RESOURCE,CONNECT
如果没有指定创建用户的权限,则默认该用户具有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登陆数据库
拥有RESOURCE权限的用户能创建基本表和视图,成为所创建对象的属主。但不能创建模式,不能创建新的用户。
拥有DBA权限的用户是系统的超级用户,基本拥有所有的权限。
4.数据库角色创建
CREATE ROLE <角色名>
5.给角色授权
GRANT <权限>
ON <对象类型> 对象名
TO <角色>
6.将一个角色授予其他的角色或用户
GRANT <角色1>
TO <角色3>
[WITH ADMIN OPTION]
如果指定了WITH ADMIN OPTION 子句,则获得某种权限的角色或用户还可以把这种权限再授予其他角色
7.角色权限的收回
REVOKE <权限>
ON <对象类型> <对象名>
FROM <角色>
8.
CREATE ROLE R1; 创建角色
GRANT SELECT,UPDATE,INSERT
ON TABLE Student
TO R1; 授予角色R1权限
GRANT R1
TO 王敏,赵明; 将角色授予两人,则两人具有角色R1所包含的全部权限
REVOKE R1
FROM 赵明; 一次性收回赵明的所有权限