ORACLE数据库,我想使用用户B中的表,在用户A创建视图(VIEW)

ORACLE数据库,我想使用用户B中的表,在用户A创建视图(VIEW),需要什么权限呢?怎么写

不确定你的目的是让用户A获得创建视图的权限还是让用户A能查到用户B的数据

  1. 如果只是为了查这张表里的数据,不需要做数据过滤的话,直接授权B用户的这个表给A用户查询权限,A用户就能查B用户的这个表了

    grant select on B用户.表名 to A用户;
    

    然后在A用户下执行查询时要带上用户名

    select * FROM B用户.表名;
    

    或者再建一个同义词就不需要加用户名了

    create synonym A用户.表名 for B用户.表名;
    select * FROM 表名;
    
  2. 如果是只让用户A访问视图,而视图里的表都是B用户的,那么也没必要把视图建在A用户下,你可以直接把视图先建在B用户下,然后使用上面的方法授权给A查询

  3. 如果是想让用户A能自主创建视图,而且还能使用用户B的表,那么要授权A用户查询任何表的查询权限和创建任何视图的权限

1.connect 权限
2.select B 表的权限
3.create view权限