Oracle:创建一个只有查看权限的用户

前端之家收集整理的这篇文章主要介绍了Oracle:创建一个只有查看权限的用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

因为工作中测试环境和开发环境是分开的,所以开发有时处理bug时需要连接测试数据库,这样出现一个问题是有些开发会为了验证某些问题任意改动数据库的表和字段,对测试库造成污染。为了能够让开发连接测试环境,同时又不污染测试库,可以给其提供一个只有查看权限(视情况开放其他权限)的用户

1.首先登陆sys用户,创建一个账号,并赋予连接权限

create user test_cx identified by 11; grant connect to  test_cx;

2.设置权限,使其能够查看base库的所有表

登陆base库,然后执行如下语句,得到针对base库所有表的授权语句(授权给test_cx用户)

select grant select on base. || table_name ||  to test_cx; from user_tables;

分享图片

3.在base库中执行查询得到的授权语句

因为表有上千个,肯定不能一个一个执行,我这里用了一个比较笨的方法,就是把查询结果导出为sql文件如下

分享图片

因为每个授权语句都被相同的insert语句包裹,可以通过把多余的部分替换为空格,只剩下grant语句,然后再执行这个sql文件就好了

替换后如下

分享图片

4.执行上述sql文件即可

分享图片

5.检验

(1)用test_cx账号登录,查看其权限

select * from session_privs;

分享图片

(2)查询base库的一张表

分享图片

(3)尝试修改base库的表

分享图片

可以看到test_cx只有select权限

猜你在找的Oracle相关文章