对象权限的分类

Oracle数据库的方案对象主要是指:表、索引、视图、序列、同义词、过程、函数、包、触发器。

创建对象的用户拥有该对象的所有对象权限,不需要授予。所以,对象权限的设置实际上是为对象的所有者给其他用户提供操作该对象的某种权力的一种方法。

Oracle数据库中总共有9种不同的对象权限。不同类型的对象有不同的对象权限。有些对象(如集群、索引、触发器、数据库连接)没有对应的对象权限,即他们是通过系统权限来控制的,例如,如要修改集群,用户必须要具有ALTER ANY CLUSTER系统权限。

对象、对象权限的对应关系如下图所示。能够在该对象上授予的对象权限用“√”表示。

各种对象权限的说明下表所示

对象权限 说明
Alter更改表上的ALTER权限保证在相关的表上执行ALTER TABLE或LOCK TABLE语句。可以重命名表、添加列、删除列、更改数据类型和列的长度,以及把表转换成一个分区(partitioned)表。序列上的ALTER权限 可以保证能够在相关序列上执行ALTER SEQUENCE语句,可以重设授权序列对象的最小值、增量和缓冲区大小
Delete删除允许在授权对象上执行DELETE语句,以便从表或者视图中删除行。SELECT权限必须随同DELETE权限授予,否则被授权的人将不能够选择行,因此也就无法删除行。DELETE权限还允许被授权者锁定相应的表
Execute运行包上的EXECUTE权限允许被授权者执行或者使用在相应的包规定中声明的任何程序或者程序 对象(如一个记录类型,即record type或者指针即cursor)。操作符(operator)或者类型(type)上的EXECUTE权限允许在SQL或者PL/SQL中使用该操作 符。

数据库对象上的EXECUTE权限允许被授权者使用相关的数据库对象并且调用其方法

Index索引允许被授权者在相关的表上创建索引或者锁定该表。当一个方案(schema)拥有一个表而另一个方案拥有其索引的时候,会出现混乱。在授予这种权限时要小心
Insert插入允许被授权者在相关的表或视图中创建行。如果该INSERT权限建立在相关表或者视图的特定列上,则只能在具有INSERT权限的列上插入数据。

INSERT权限还隐含地给被授权者以锁定该表的能力

Read读只能在目录上授予。允许被授权者读取指定目录中的BFILE。

Read权限与SELECT权限有区别,后者允许用户读取一个表或者视图

Reference引用只能在表上授予用户,而不能授予角色。允许被授权者创建引用该表的参照完整性约束。被授权者可以锁定该表
Select选择允许被授权者在表或者视图上执行SELECT语句。允许被授权者读取表或者视图的内容。

序列上的SELECT权限允许被授权者获取当前值(CURRVAL)或者通过选择NEXTVAL增大该值。

SELECT权限只能授予整个表,不能授予表中的列。因此,如果希望用户只能查询表中的部分列,就需要在该表上创建视图,然后将该视图的SELECT权限授予用户。

Update更新允许被授权者更改表或者视图中的数据值。SELECT权限必须随同UPDATE权限一起授予,这样就使被授权者隐含具有了锁定表的能力
All所有对于可以具有多项权限的对象,可以授予或者撤消专门的权限ALL。对于表而言,ALL中包含 了SELECT、INSERT、UPDATE和DELETE以及INDEX、ALTER和REFERENCE。所以,在表上授予AIL权限时要小心,因为 可能并不想授予INDEX、ALTER和REFERENCE权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值