oracle 创建只有查询表权限的用户

方法1:

创建只读用户

select * from user_tablespaces

第一步、创建用户。使用有管理员权限的用户创建一个新的用户:
create user 用户名 identified by 密码 default tablespace 表空间;
 
 第二步、赋连接权限:
grant connect to 用户名;
  
第三步、赋表权限 
owner  主用户
grant select on owner.表名 to 用户名;
 
如果有多表,可以用selece转换批量执行语句:
select 'grant select on '||owner||'.'||object_name||' to 用户名;'
from dba_objects
where owner in ('owner')
and object_type='TABLE';

如果想赋予所有表

grant select any table to 用户名;
   
第四步、创建同义词:创建同义词后,可以不用加 owner. 直接访问表
create or replace SYNONYM 用户名.表名 FOR owner.表名;
  
如果有多表,可以用selece转换批量执行语句:
SELECT 'create or replace SYNONYM  用户名.'||object_name||' FOR '||owner||'.'||object_name||';'  from dba_objects 
where owner in ('owner')
and object_ty


版权声明:本文为hongkaihua1987原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。