参考

Oracle数据库创建只读用户 - gdjlc - 博客园 (cnblogs.com)

说明

创建一个只读用户gms_read,只能查询管理员用户GMS下的表,不能增删改

操作步骤

创建新用户

1
2
--创建用户 gms_read 密码 gms 默认表空间 sgp
create user gms_read identified by gms default tablespace sgp;

为新用户授权

1
2
3
grant connect,resource to gms_read;
grant create synonym to gms_read;
grant create session to gms_read;

授予新用户查询表权限

将原用户 GMS 的所有表查询权限授予新用户

一定注意:执行如下语句,获取查询结果,然后执行

1
2
3
4
select 'grant select on '||owner||'.'||object_name||' to gms_read;'
from dba_objects
where owner in ('GMS')
and object_type='TABLE';

为新用户创建同义词

一定注意:执行如下语句,获取查询结果,然后执行

1
2
3
4
select 'create or replace SYNONYM gms_read.' || object_name|| ' FOR ' || owner || '.' || object_name|| ';'
from dba_objects
where owner in ('GMS')
and object_type='TABLE';