【无标题】

需求说明

现有数据库账号:CCENSE:具有完整权限,增删改查。 需要创建一个数据库账号:ykt_test,对CCENSE账号下的某四张表赋予只读权限

第一步、创建只读账号

第一步、创建只读账号
CREATE USER htreader identified by 123456

第二步、赋予账号连接数据库等基本权限

赋予htreader连接等常规权限
grant connect to htreader;
grant create view to htreader;
grant create session to htreader;
grant create synonym to htreader;

第三步、获取原账号的查询权限

select ‘grant select on ‘|| owner || ‘.’||object_name||’ to ykt_test;’
from dba_objects
where owner in (‘CCENSE’) – 数据库/表空间
and object_type=‘TABLE’
and object_name in(‘BASE_CUSTOMERS’,‘BASE_CUSTDEPT’,‘BASE_DEPT’,‘REC_MAIN_CONSUME’);-- 相关表

-- 执行上面查询语句
grant select on CCENSE.BASE_CUSTDEPT to ykt_test;
grant select on CCENSE.BASE_CUSTOMERS to ykt_test;
grant select on CCENSE.BASE_DEPT to ykt_test;
grant select on CCENSE.REC_MAIN_CONSUME to ykt_test;

第四步:在原账号CCENSE端执行,获取需要显示的表名称

select ‘create or replace SYNONYM ykt_test.’|| object_name ||’ for ‘||owner|| ‘.’|| object_name||’;’
from dba_objects
where owner in (‘CCENSE’)
and object_type=‘TABLE’
and object_name in(‘BASE_CUSTOMERS’,‘BASE_CUSTDEPT’,‘BASE_DEPT’,‘REC_MAIN_CONSUME’);-- 相关表

执行上面查询语句
create or replace SYNONYM ykt_test.BASE_CUSTDEPT for CCENSE.BASE_CUSTDEPT;
create or replace SYNONYM ykt_test.BASE_CUSTOMERS for CCENSE.BASE_CUSTOMERS;
create or replace SYNONYM ykt_test.BASE_DEPT for CCENSE.BASE_DEPT;
create or replace SYNONYM ykt_test.REC_MAIN_CONSUME for CCENSE.REC_MAIN_CONSUME;

第五步:测试查询

select * from BASE_CUSTOMERS WHERE ROWNUM = 1;
select * from BASE_CUSTDEPT WHERE ROWNUM = 1;
select * from BASE_DEPT WHERE ROWNUM = 1;
select * from REC_MAIN_CONSUME WHERE ROWNUM = 1;
修改测试
update CCENSE.REC_MAIN_CONSUME  set dscrp = '餐费支出1' where  CSTACCFC = '14632377';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值