Oracle将指定表分配给一个新用户进行查看数据

来源:互联网 发布:网络测试和软件测试 编辑:程序博客网 时间:2024/05/16 00:56

有两个用户,一个是A,一个是B
现在在A用户下有很多表,将来也会增加一些表,
我如何通过权限设置,让B拥有查询(仅仅查询)A用户下所有表的权限。

1,执行下面这个查询语句
select 'grant select on A.'||t.table_name||' to B;' from dba_tables t where t.owner='A';
2,执行上面查询出来的结果

这种访问只能对已知表赋给select权限,但是如果这个用户有新加表的话,我还是不能访问。

或者

conn user1
spool grant.sql
select  'grant select on '|| table_name|| ' to user2 ;' from user_tables;

 

 

 

最近在使用oracle的时候,为了安全,需要将指定表分配给一个新用户进行查看数据,看了很多例子,都不是很好,说的很模糊,后来经过实践,找出来了一个比较适当的方法,下面给大家分享。


system:数据库管理账户 ,  myoracle:被访问用户 ,  youroracle:访问用户  , 密码:password  ,testtable 被分配查询的表名


1.首先使用myoracle进行登录oracle: 使用命令窗口输入以下sql语句创建youroracle用户: create user youroracle identified by password;


2.使用system账户登录 :使用命令窗口创建session条件:grant create session to youroracle;


3.使用myoracle登录oracle:使用命令窗口分配访问权限 :grant select on testtable to youroracle;


4.使用youroracle账户 密码是:password 进行登录,在查看自己的tables中就会看到  myoracle.testtable的表了。


使用以上步骤就可以完成Oracle中一个用户访问另一个用户的表了,如果想访问说有的表,但都是select权限的话 可以使用 grant select on any tables to youroracle;即可。

 

0 0