有两个用户,一个是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;即可。