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