您的位置:首页 > 数据库 > Oracle

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

2015-12-01 15:01 399 查看
有两个用户,一个是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;即可。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: