欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle grant用户授权

程序员文章站 2022-03-21 08:15:02
...

获得对象授权的用户可以访问数据库对象及其内容。提示当用户获得处理其他用户表的权限后,在他能够在SQL语句中引用其他用户的表之

获得对象授权的用户可以访问数据库对象及其内容。提示当用户获得处理其他用户表的权限后,在他能够在SQL语句中引用其他用户的表之前,必须有这些表的公用或私用同义词,, Oracle可通过它们识别出这些表。

假设Jrstocks拥有称为sample_b的表,并允许所有数据库用户访问sample_b。另一个用户coreyan用一条SQL语句查询表sample_b,得到下列错误信息:

select * from sapmle_b;

*

ERROR at line :1

ORA-00942:table or view does not exist

不论授予何种权限,每条授权(grant)语句总是由三部分组成:

1) 接受者部分是准备获得权限的一个或多个用户的列表。

2)关键字权限部分由grant后跟一种或多种权限组成。如果在同一条grant语句中有多个权限,权限之间用逗号分隔。

3) 表名部分由关键字o n起头并列出准备在其上授权的表。

看下面的详细介绍,主要是介绍如何把添加、删除、修改、查询四种权限授予用户,如下:

一、insert

insert权限允许在其他用户的表中建立行。语句grant insert on sample_a to public;允许所有用户在sample_a中建立新的行。Oracle允许在单条grant语句中授多个权限,SQL语句grant insert,select on sample_a to public;等价于两个语句:grant select on sample_a to public;语句和grant insert on sample_a to ublic;语句。

二、update

update权限允许其他用户修改非自己表中的数据。语句grant update on sample_a teplownd;允许用户teplownd修改表sample_a中的信息。

三、select

select权限允许用户查看其他用户表中的内容。语句grant select on sample_3 to public;将允许所有用户浏览表sample_3中的内容,而语句grant select on sample_3 to ops$rosenberge,ops$abbeyms;则只允许两个用户查看表sample_3中的内容。注意,当多个用户接受授权时,用户名之间要用逗号分隔。

提示以public为授权对象时,所有数据库用户都获得指定的权限。如果用户的数据库有15000个用户,则单独授权就需要15000次(每个用户一次),而授权给public,一次即可。

四、delete

删除权限允许其他用户删除指定表的信息行。此权限非同小可,因此我们建议小心使用。下面是一个实际例子:如果一个用户连接到产品数据库,而他还以为他连接的是测试数据库。他发布了一条命令delete from people_master;并且Oracle做出了反应12003 rows delet.ed在退出SQL * Plus后,下一个程序访问people_master查看Rick Bower的记录,会被告知记录不存在。

命令grant delete,update,select on sample_a to public;对所有数据库用户给出指明的权限,而命令grant select,update,insert,delete on sample_a to teplownd,greerw;只允许用户teplownd和greerw对表sample_a做命令中所列出的动作。

Oracle grant用户授权