oracle程序包私有对象关键字,详谈Oracle对象特权说明

学习Oracle时,你可能会遇到Oracle对象特权问题,这里将介绍Oracle对象特权问题的解决方法,在这里拿出来和大家分享一下。Oracle对象特权使得被授予者可以以特定方式使用另一用户所拥有的模式对象。有些特权只适用于某些模式对象。例如INDEX特权只适用于表,而SELECT特权则适用于表、视图和序列。

1. 下面这些特权可以被个别授予,被组合在一个列表中授予,或借助关键字ALL被全部授予。

2. 在使用ALL关键字时需要特别小心。它可能会隐含地授予威力强大的特权

表对象特权

下面这些特权经常被授予,而且应该完全了解它们。

1. SELECT允许查询指定表

2. INSERT允许在指定表创建新行

3. UPDATE允许修改指定表的现有行

4. DELETE允许删除指定表的行

5. ALTER允许添加、修改或重命名指定表中的列,转移该表到另一个表空间,乃至重命名指定表。

6. DEBUG允许被授权者借助于一个调度程序访问指定表上的任意触发器中的PL/SQL代码

7. INDEX允许被授权者在指定表上创建新的索引

8. REFERENCES允许创建参考指定表的外部键约束

视图对象特权

1. SELECT查询指定视图

2. INSERT允许在指定视图创建新行

3. UPDATE允许修改指定视图的现有行

4. DELETE允许删除指定视图的行

5. DEBUG允许被授权者借助于一个调度程序访问指定视图上的任意触发器中的PL/SQL代码

6. REFERENCES允许创建参考指定视图的外部键约束

序列对象特权

1. SELECT允许访问当前值和下一个值(即CURRVAL和NEXTVAL)

2. ALTER允许修改指定序列的属性

存储过程、函数、过程、包和JAVA对象特权

1. DEBUG允许访问指定程序中所声明的所有公用与私有变量与类型如果对象是包,还允许访问包规范与主体允许在指定程序中放置断点

2. EXCUTE允许执行指定程序。如果对象是包,那么表规范中所声明的任意一个程序、变量、类型、油标或记录均允许访问

实例

1. 把CUSTOMERS表上的SELECT,INSERT,UPDATE和DELETE特权授予角色SALES_MANAGER

2. 如果把特权授予特殊用户PUBLIC,那么特权变成对当前与未来数据库所有用户均可访问。如下例将允许所有用户在CUSTOMERS表上SELECT。

3. 参数"WITH GRANT OPTION"允许被授与者继续把得到的Oracle对象特权授予其它用户。下例把sales拥有的表customers的SELECT权限授予sales_admin,并且同时允许sales_admin把该特权授予其它用户

当通过WITH GRANT OPTION参数获得的特权被取消时,该取消发生级联作用。例如Mary授予Zachary在表client上的select特权,同时Zachary又把该特权授予Rex。当Mary取消Zachary的特权时,Rex的特权也被取消。

当用户Mary同时从多个用户获得同一个特权,当其中一个用户的特权被取消时,Mary的特权不会被取消,直至授予Mary授权的所有用户均被取消该特权。以上介绍Oracle对象特权。

【编辑推荐】

【责任编辑:志京 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值