Oracle创建只读账号的详细步骤


Posted in Oracle onJune 07, 2021

需求说明

现有数据库账号:HEPSUSR:具有完整权限,增删改查。

需要创建一个数据库账号:HTREADER,对HEPSUSR账号下所有的表具有只读权限。

第一步:创建只读账号

--创建只读账号 第一步
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;

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

获取原账号HEPSUSR用户的所有查询表权限
select 'grant select on '||owner||'.'||object_name||' to htreader;'
from dba_objects
where owner in ('HEPSUSR')
and object_type='TABLE';

--查询结果为新账号的赋值语句,如下图

Oracle创建只读账号的详细步骤

第四步:将原账号权限赋值为新账号

在原账号HEPSUSR下执行,将原账号的查询权限 赋值给新账号
-------
grant select on HEPSUSR.ENTRY_CERT to htreader;
grant select on HEPSUSR.SUB_MESSAGE_INFO to htreader;
grant select on HEPSUSR.ENTRY_CERT_RELATION to htreader;
grant select on HEPSUSR.ENTRY_CERT_RELATION to htreader;
grant select on HEPSUSR.ENTRY_DECL_TAX to htreader;
grant select on HEPSUSR.ENTRY_DOCU to htreader;
grant select on HEPSUSR.ENTRY_FEES to htreader;
grant select on HEPSUSR.ENTRY_GOODS_TAX to htreader;
grant select on HEPSUSR.ENTRY_HEAD to htreader;
grant select on HEPSUSR.ENTRY_LIST to htreader;
grant select on HEPSUSR.ENTRY_WORKFLOW to htreader;
grant select on HEPSUSR.IQ_APPEND to htreader;
grant select on HEPSUSR.IQ_CERT to htreader;
grant select on HEPSUSR.SUB_SWAP to htreader;
grant select on HEPSUSR.VIN_LIST to htreader;

第五步:在新账号端创建同位显示表

因为新创建的只读账号,Tables栏中显示为空,我们需要在PL/SQL显示栏中为新账号登录界面添加显示同位元素,如下:

--在原账号HEPSUSR端执行,获取需要显示的表名称
select 'create or replace SYNONYM htreader.'||object_name|| ' for ' ||owner|| '.'||object_name||';'
from dba_objects
where owner in ('HEPSUSR')
and object_type='TABLE'

Oracle创建只读账号的详细步骤

第六步:查询结果在新账号端执行

在只读账号HTREADER端执行:添加显示各个表信息;在SYSNONYM目录下,tables目录下无显示
create or replace SYNONYM htreader.VIN_LIST for HEPSUSR.VIN_LIST;
create or replace SYNONYM htreader.SUB_SWAP for HEPSUSR.SUB_SWAP;
create or replace SYNONYM htreader.SUB_MESSAGE_INFO for HEPSUSR.SUB_MESSAGE_INFO;
create or replace SYNONYM htreader.IQ_CERT for HEPSUSR.IQ_CERT;
create or replace SYNONYM htreader.IQ_APPEND for HEPSUSR.IQ_APPEND;
create or replace SYNONYM htreader.ENTRY_WORKFLOW for HEPSUSR.ENTRY_WORKFLOW;
create or replace SYNONYM htreader.ENTRY_LIST for HEPSUSR.ENTRY_LIST;
create or replace SYNONYM htreader.ENTRY_HEAD for HEPSUSR.ENTRY_HEAD;
create or replace SYNONYM htreader.ENTRY_GOODS_TAX for HEPSUSR.ENTRY_GOODS_TAX;
create or replace SYNONYM htreader.ENTRY_FEES for HEPSUSR.ENTRY_FEES;
create or replace SYNONYM htreader.ENTRY_DOCU for HEPSUSR.ENTRY_DOCU;
create or replace SYNONYM htreader.ENTRY_DECL_TAX for HEPSUSR.ENTRY_DECL_TAX;
create or replace SYNONYM htreader.ENTRY_CONTAINER for HEPSUSR.ENTRY_CONTAINER;
create or replace SYNONYM htreader.ENTRY_CERT_RELATION for HEPSUSR.ENTRY_CERT_RELATION;
create or replace SYNONYM htreader.ENTRY_CERT for HEPSUSR.ENTRY_CERT;

第七步:执行完成之后 登录新账号,查看结果

新账号可以查询原账号的所有表结构,但是无法执行 增删改相关操作

Oracle创建只读账号的详细步骤

第八步:执行删除、修改sql语句测试

Oracle创建只读账号的详细步骤

附录:Oracle查询账号及权限详细语句

1.查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;

2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs;
select * from user_sys_privs;

3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql>select * from role_sys_privs;

4.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;

5.查看所有角色:
select * from dba_roles;

6.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;

以上就是Oracle创建只读账号的详细步骤的详细内容,更多关于Oracle创建只读账号的资料请关注三水点靠木其它相关文章!

Oracle 相关文章推荐
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
Apr 06 Oracle
Oracle设置DB、监听和EM开机启动的方法
Apr 25 Oracle
使用springboot暴露oracle数据接口的问题
May 07 Oracle
zabbix agent2 监控oracle数据库的方法
May 13 Oracle
ORACLE查看当前账号的相关信息
Jun 18 Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
Oracle 触发器trigger使用案例
Feb 24 Oracle
详解SQL的窗口函数
Apr 21 Oracle
解决Oracle数据库用户密码过期
May 11 Oracle
ORACLE中dbms_output.put_line输出问题的解决过程
Jun 28 Oracle
Oracle11g R2 安装教程完整版
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
使用Navicat Premium工具将oracle数据库迁移到MySQL
Oracle更换为MySQL遇到的问题及解决
May 21 #Oracle
oracle覆盖导入dmp文件的2种方法
Oracle 区块链表创建过程详解
zabbix agent2 监控oracle数据库的方法
You might like
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
Python常用模块用法分析
2014/09/08 Python
MySQL最常见的操作语句小结
2015/05/07 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python批量爬取下载抖音视频
2019/06/17 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
python中PyQuery库用法分享
2021/01/15 Python
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
求职信范文怎么写
2014/01/29 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis