数据库安全--授权GRANT和回收REVOKE

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 
[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 赵明;   一次性收回赵明的所有权限

你可能感兴趣的:(计算机基础知识)