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 相关文章推荐
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
Jun 04 Oracle
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
使用Oracle跟踪文件的问题详解
Jun 28 Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 Oracle
Oracle安装TNS_ADMIN环境变量设置参考
Nov 01 Oracle
Lakehouse数据湖并发控制陷阱分析
Mar 31 Oracle
分析SQL窗口函数之取值窗口函数
Apr 21 Oracle
Oracle用户管理及赋权
Apr 24 Oracle
ORACLE中dbms_output.put_line输出问题的解决过程
Jun 28 Oracle
Oracle删除归档日志及添加定时任务
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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
php header功能的使用
2013/10/28 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP错误处理函数
2016/04/03 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
PHP反射基础知识回顾
2020/09/10 PHP
浅析JavaScript中的类型和对象
2013/11/29 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
python取代netcat过程分析
2018/02/10 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
瀑布模型都有哪些优缺点
2014/06/23 面试题
2013年大学生的自我鉴定
2013/10/24 职场文书
函授本科个人自我鉴定
2014/03/25 职场文书
诚信承诺书范文
2014/03/27 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
个人委托书范本
2014/09/13 职场文书
教师节简报
2015/07/20 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书