oracle 授权sql语句,使用SQL语句给用户授权的方法

SQL使用GRANT语句向用户授予操作权限,GRANT语句的一般格式为:

GRANT [,,…]

[ON ]

TO [,,…] | PUBLIC

[WITH GRANT OPTION]

对此语句的说明如下:

(1)不同类型的操作对象具有不同的操作权限,如表3.17所示。

d9794ba2a6f11432c45fba8a175152d8.png

(2)接受授权的用户可以是一个或多个具体的用户,也可以是角色或PUBLIC,指定PUBLIC即把权限授予数据库中的所有用户。

(3)授予关于属性列的权限时,必须明确给出相应的属性列名称。

(4)如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他用户,但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先,如图3.3所示。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,不能把权限再授予其他人。

04e5ce501cc8c7a1e7d28a2aefda2a71.png

例3.72把查询Student表的权限授给用户user1。

GRANT SELECT ON TABLE Student TO user1

例3.73把对Student表和Course表的全部操作权限授予user2和user3。

GRANT ALL PRIVILIGES ON TABLE Student,Course TO user2, user3

例3.74把对表SC的查询权限授予给所有用户。

GRANT SELECT ON TABLE SC TO PUBLIC

例3.75把查询Student表和修改学生姓名的权限授予给用户user4。

GRANT SELECT,UPDATE(Sname) ON TABLE Student TO user4

例3.76把对表SC的INSERT权限授予user5用户,并允许其把此权限再授予其他用户。

GRANT INSERT ON TABLE SC TO user5 WITH GRANT OPTION

执行此SQL语句后,user5不仅拥有了对表SC的INSERT权限,还可以把此权限再授予他人。

从上面的几个例子可以看出,SQL的授权机制非常灵活。用户对自己建立的基本表和视图拥有全部的操作权限,也可以将这些权限授予其他用户。用户可以一次向一个用户授权,如例3.72所示。也可以一次向多个用户授权,如例3.73和例3.74所示;还可以一次传播多个同类对象的权限,如例3.73所示;甚至一次可以完成对基本表、视图和属性列这些不同对象的授权,如例3.75所示。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值