oracle用户赋予另一用户表的查询权限

283 阅读1分钟

1、创建用户(使用dba权限用户操作)

create user user2 identified by 用户密码 default tablespace 表空间;

2、赋予用户基础权限(使用dba权限用户操作)

grant RESOURCE,CONNECT to user2;

3、将user1的表权限赋予user2(使用dba权限用户操作)

#查询sql
select 'Grant all on '||table_name||' to user2 ;' from all_tables where owner = upper(user1);
#执行生成的sql语句

此时user2可以通过user1.table的方式查询到user1的表数据。 如果想要不带schema,通过表名的方式直接查询,可以给user2创建同义词。

4、创建同义词

#为user2赋权(使用dba权限用户操作)
GRANT CREATE SYNONYM TO user2;

#为user2创建同义词(使用user2操作),只列举了一张表的创建方式
create or replace synonym tableA  for user1.tableA;

这样user2就可以使用表名直接查询。