Oracle:如何创建一个只有查看权限的用户
2023-09-11 14:21:25 时间
因为工作中测试环境和开发环境是分开的,所以开发有时处理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】sqlplus 遇到共享库权限不足
- 【Oracle】Oracle常用EVENT之三
- 【Python Oracle】使用cx_Oracle 连接oracle的简单介绍
- 《oracle每日一练》Oracle DBLink连接数过多的问题(Ora-02020)
- 《oracle每日一练》免安装Oracle客户端使用PL/SQL
- 《oracle每天一练》Oracle冷备份与数据恢复
- 《oracle每天一练》Merge Into 语句代替Insert/Update在Oracle中的应用实战
- ORACLE序列总结
- RHEL6 64位系统安装ORACLE 10g 64bit 数据库
- Oracle创建表空间、创建用户以及授权、查看权限
- 使用Navicat for Oracle新建表空间、用户及权限赋予
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之缓存融合技术和主要后台进程(四)
- Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
- Oracle 创建普通用户,并赋予权限
- Oracle 11g解锁scott
- 连接ORACLE数据库,是不是必须要安装oracle客户端的运行时
- 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"
- Oracle用户、权限、角色管理
- Oracle中添加虚拟列(emp是oracle自带表)
- 已解决:Failure to find com.oracle:ojdbc6:jar:11.2.0.4.0-atlassian-hosted
- Oracle分组取第一条数据
- Oracle 学习笔记 13 -- 控制用户权限
- oracle if then else
- oracle中imp命令具体解释
- Oracle 19c RAC OS的准备检查阶段
- Oracle的学习心得和知识总结(十二)|Oracle数据库Real Application Testing之SQL Performance Analyzer实操(一)