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

 更新时间:2021年06月05日 16:16:36   作者:Lexsaints  
本文介绍了Oracle创建只读账号的详细步骤,有此需求的朋友可以参考下过程

需求说明

现有数据库账号: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';

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

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

在原账号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'

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

在只读账号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;

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

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

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

附录: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索引介绍(图文详解)

    在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容
    2014-06-06
  • oracle怎样才能彻底卸载干净

    oracle怎样才能彻底卸载干净

    Oracle安装上之后,通过自带的卸载工具一般都无法将程序卸载干净,导致下次的程序安装出错,这篇文章主要给大家介绍了关于oracle怎样才能彻底卸载干净的相关资料,需要的朋友可以参考下
    2023-11-11
  • PLSQL developer12汉化过程

    PLSQL developer12汉化过程

    今天小编就为大家分享一篇关于PLSQL developer12汉化过程的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 深入Oracle字符集的查看与修改详解

    深入Oracle字符集的查看与修改详解

    本篇文章是对Oracle字符集的查看与修改进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 解决线上Oracle连接耗时过长的问题现象

    解决线上Oracle连接耗时过长的问题现象

    这篇文章主要介绍了记一次线上Oracle连接耗时过长的问题,本文通过问题定位分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Oracle对PL/SQL中的异常处理

    Oracle对PL/SQL中的异常处理

    这篇文章介绍了Oracle对PL/SQL中异常处理的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Linux系统下启动/关闭Oracle数据库

    Linux系统下启动/关闭Oracle数据库

    在Linux系统上开启关闭Oracle数据库是一个常见的任务,可以通过多种方法来实现,这篇文章主要给大家介绍了关于Linux系统下启动/关闭Oracle数据库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Oracle存储过程与函数的详细使用教程

    Oracle存储过程与函数的详细使用教程

    存储过程和函数在Oracle中被称为子程序,是指被命名的PL/SQL块,这种块可以带有参数,可以被多次调用,下面这篇文章主要给大家介绍了关于Oracle存储过程与函数的详细使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 基于Oracle闪回详解(必看篇)

    基于Oracle闪回详解(必看篇)

    下面小编就为大家分享一篇基于Oracle闪回详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • oracle数据库中选择桌面类和服务器类的区别详解

    oracle数据库中选择桌面类和服务器类的区别详解

    oracle就是ORACLE公司的数据库产品,以高性能著称,下面这篇文章主要给大家介绍了关于oracle数据库中选择桌面类和服务器类区别的相关资料,文中介绍的非常详细,需要的朋友可以参考下
    2024-05-05

最新评论