记一次创建Oracle只读用户

本次创建只读用户是在10g和11g上分别测试的,均可以正常创建。此处直接复制来源https://www.cnblogs.com/gdjlc/p/11655924.html

操作环境:PL/SQL Developer

1、用管理员用户user1登录,创建用户user2、并授权

--创建用户user1,密码123456
create user user2 identified by 123456;
--授权
grant connect to user2;
grant create synonym to user2;
grant create session to user2;

2、授予user2的查询表权限:复制下面的查询结果,执行

select 'grant select on '||owner||'.'||object_name||' to user2;'
 from dba_objects
 where owner in ('USER1')
 and object_type='TABLE';
注意:标红字体要大写

3、为user2创建同义词:复制下面的查询结果,执行

select 'create or replace SYNONYM user2.' || object_name|| ' FOR ' || owner || '.' || object_name|| ';' 
from dba_objects
where owner in ('USER1')
and object_type='TABLE';
注意:标红字体要大写

测试:
用user2登录数据库,查询正常,增删改提示没有权限。

原文地址:https://www.cnblogs.com/chxmtl/p/13353700.html