SQL中使用GRANT和REVOKE语句向用户授权或回收对数据的操作权限

您所在的位置:网站首页 数据库grant语句一次只能向一个用户授权 SQL中使用GRANT和REVOKE语句向用户授权或回收对数据的操作权限

SQL中使用GRANT和REVOKE语句向用户授权或回收对数据的操作权限

2024-07-08 06:55| 来源: 网络整理| 查看: 265

1.GRANT

GRANT语句的一般格式为:

    GRANT    

    ON   

    TO   

       [ WITH   GRANT  OPTION]

其语义为:将对指定操作对象的指定操作权限授予指定的用户.发出该GRANT语句的可以是数据库管理员,也可以是该数据库对象的创建者。

 

如果指定来WITH   GRANT  OPTION 子句,则获得某种权限的用户还可以把这种权限授予其他用户。但不允许循环传授,即被授权者不能把权限在授回给授权者或祖先。如图

如果没有指定WITH   GRANT  OPTION 子句,则获得某种权限的用户只能使用该权限,不能传播该权限。

例1:把查询Student表的权限授给用户U1

   GRANT   SELECT

   ON   TABLE   Student

   TO   U1;

 

例2:对SC表操作把INSERT权限授给U5表

   GRANT   INSERT

   ON   TABLE   SC

   TO   U5

   WITH   GRANT  OPTION;

 

U5表将此权限授给U6 

   GRANT   INSERT

   ON   TABLE   SC

   TO   U6

   WITH   GRANT  OPTION;

  同样,U6还可以将此权限授U7

 

2.REVOKE

  授予用户的权限可以由数据库管理员或其他授权者用REVOKE语句收回,REVOKE语句的一般格式为:

   REVOKE

   ON   

   FROM    [CASCADE  |   RESTRICT];

 

例:把用户U5对SC表的INSERT权限收回。

  REVOKE  INSERT

  ON  TABLE  SC

  FROM  U5  CASCADE;

其语义为:将用户U5的INSERT权限收回同时,级联(CASCADE)收回了U6和U7的INSERT权限,否则系统将拒绝执行该命令。

 

 

SQL提供了非常灵活的授权机制:

    1.数据库管理员拥有对数据库中所有对象的所有权限,并根据实际情况将不同的权限授予不同的用户。

    2.用户对自己建的基本表和视图拥有全部操作权限,并可以使用GRANT语句授权给其他用户,其他用户拥有继续授权的许可,还有再授权给其他用户。

    3.所有授予出去的权力在必要时又可以用REVOKE语句收回。

 

可见,用户可以“自主”地将数据的存取权限授予任何人,决定是否也将“授权”的权限授予别人,因此称这样的存取控制是自主存取控制。在现实当中,只有自己强大了你才有“自主”的权限。否则你只能被“授权”。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3