ORACLE授权用户查询另一个用户下的表与视图
ORACLE授权用户查询另一个用户下的表与视图
实际应用中,会遇到在某个用户下需要查询另一个用户下的表数据或视图的情况,然而在没有授权时,会提示无权限操作的错误。那就需要通过授权处理后,再能进行查询操作,下面我们来看看是怎么处理的。
一、系统权限说明:
1、用户权限
CREATE SESSIOIN 连接到数据库
CREATE TABLE 在用户的方案中创建表
CREATE SEQUENCE 在用户的方案中创建序列
CREATE VIEW 在用户的方案中创视图
CREATE PROCEDURE在用户的方案中创建存储过程,函数或包
1.1、例子:授予系统权限
DBA能够授予用户指定的系统权限
GRANT create session,create table,
create sequence,create view
TO scott;
二、创建用户只用于查询其它用户库的表和视图
1、创建用户
2、授权查询表与视图权限
2.1、a用户下授权查询所有表给b用户(a用户登录执行下面语句)
2.2、a用户下授权查询单个表给b用户
2.3、a用户下授权查询所有序列给b用户
2.4、--Oracle查询用户视图
2.5、a用户下授权查询视图给test11用户
备注:授权更新、删除的 语法和授权查询类似,只是关键字不同而已。
三、撤消权限
1、授权a用户下取消给b用户删除单个表的权限
revoke delete on a.tablename from b;
2、授权a用户下取消给b用户更新单个表的权限
revoke update on a.tablename from b;
3、拥有dba权限的用户下取消给b用户创建dblink的权限
revoke create database link from b;
4、拥有dba权限的用户下取消给tes11用户查询任何表的权限
revoke select any table from test11;
四、事例:
1、在rh_test用户下授权查询所有表给wd用户
2、a用户下授权查询单个表给test11用户
3、授权a用户下授权更新单个表给b用户
grant update on a.tablename to b;
4、授权a用户下授权删除单个表给b用户
grant delete on a.tablename to b;
5、拥有dba权限的用户下授权创建dblink给b用户
grant create database link to b;