创建只读账号oracle

1.创建用户,指定哪个表空间
create user test2 identified by "123" default tablespace BDCDJ_XC temporary tablespace BDCDJ_XC_temp;

2.创建角色
CREATE ROLE SELECT_ROLE

3.给角色分配权限
grant connect to SELECT_ROLE;
grant create synonym to SELECT_ROLE;

4.分配某些表的select权限
如:
grant select on BDCDJ_XC.BDC_CF to SELECT_ROLE;

--可以通过语句生成:
select 'grant select on '||owner||'.'||object_name||' to test2;'
from dba_objects
where owner in ('BDCDJ_XC') and object_type='TABLE'


5.创建同义词给用户
如:
create or replace SYNONYM test2.BDC_CF FOR BDCDJ_XC.BDC_CF;

--可以通过语句生成所有表:
SELECT 'create or replace SYNONYM BDCDJ_XC.' || object_name|| ' FOR ' || owner || '.' || object_name|| ';'
from dba_objects
where owner in ('BDCDJ_XC') and object_type='TABLE';

 

6.把角色赋予指定账户
grant SELECT_ROLE to test2;


7.删除角色
drop role SELECT_ROLE;

8.检查角色的权限
select * from dba_sys_privs where grantee='SELECT_ROLE'
---------------------


这样其他人只有通过这个账号登录查询,表名不列出来,表空间不列出来。
可以创建database_link但是查询时报“表或视图不存在”
create database link to_bdcxc
connect to test2 identified by "123"
using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xxx)
(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ))'

select* from bdc_cf@to_bdcxc;

 

也就无法通过create table ..select复制数据库。
create table bdc_cf as select * from bdc_cf@to_bdcxc;

这样办法可行否,给个意见。

posted on 2019-02-13 17:48 Anders' Yan 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yansc/p/10371154.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值