首页 > 数据库 >Oracle Database 19c 创建只读用户

Oracle Database 19c 创建只读用户

时间:2023-11-28 16:14:01浏览次数:48  
标签:name grant -- Database 用户 cmsreadonly 19c Oracle select

1.登录oracle数据库服务器,以管理员用户登录

sqlplus / as sysdba

  切换容器等操作

  show pdbs;  

  alter session set container = ORA19CPDB;

  show con_name;

2.创建只读用户

create user cmsreadonly identified by cmsreadonly default tablespace CMSPROD_DATA;

3.授权,基本权限

grant connect to cmsreadonly ;  --连接权限

grant CREATE SESSION to cmsreadonly ; --创建会话权限

grant CREATE SYNONYM to cmsreadonly ; --创建同义词权限

grant select any table to cmsreadonly ;  --可以查询任何表                     

--revoke SELECT ANY TABLE from cmsreadonly ;  --回收权限

 

还有一种授权方式:授予某个用户的某个表的 select/insert/update 权限

将用户userA的表的查询权限授权给userB

grant select on userA.t_bd_customer to userB;
grant insert on userA.t_bd_customer to userB;
grant update on userA.t_bd_customer to userB;

查看某个用户拥有哪个表的哪些权限:

记住这个表:all_tab_privs 

select * from all_tab_privs where GRANTEE='BEDCPROD';

 

4.创建同义词,不创建就不能直接通过单独的名词来查询

CREATE SYNONYM bedc_bank FOR bedcprod.bedc_bank;

附:批量创建同义词的脚

select 'create or replace synonym 目的地用户.'|| table_name ||' for 源用户.'|| table_name ||';' from all_tables where owner = '源用户';

--select 'create or replace synonym '||object_name||' for '||owner||'.'||object_name||';' from dba_objects where owner in ('USERA') and object_type='TABLE';
create or replace synonym cmsreadonly.PORTAL_USER_PROFILE for cmsprod.PORTAL_USER_PROFILE;

 复制运行的sql,执行

给表同义词赋权,操作方式同上

select 'grant select, insert, update, delete on 源用户.'|| table_name ||' to 目的地用户;' from all_tables where owner = '源用户';

 

 

标签:name,grant,--,Database,用户,cmsreadonly,19c,Oracle,select
From: https://www.cnblogs.com/wangb172866/p/17862067.html

相关文章

  • Oracle临时表会随另外一个表的创建自动提交并清空
    创建一个临时表,用它导入一些数据用这个临时表生成另外一个表,用createtable...但生成的这表总是空的。原来createtable前会进行提交commit,而临时表在commit时会自动清空(默认属性,可以改)所以生成的表总是空的。这种情况下就不要用临时表了,用普通表,因为反正用完是要手工删......
  • 如何正确的在AIX 7上正确开启大页内存(large page)on oracle 11.2.0.4 rac 转发 https:
    1、关于大页有个客户的业务系统上要开启大页,提高系统性能,研究了一下,网上文章太多,自己做了一些测试,经过实机测试,整理了一下操作记录。关于AIX上为什么要开启大页,借用MOS里的说明原文:StartingwiththeAIXV5.1operatingsystemwhenrunningonIBMPOWER4orPOWER5proces......
  • 配置Oracle链接服务器使用分布式事务​
    1现象在SQLServer中创建指向Oracle的链接服务器,SQL语句在事务中向链接服务器插入数据。返回链接服务器无法启动分布式事务的报错。2解决在Windows平台下,SQLServer依赖分布式事务协调器(MSDTC)来使用分布式事务,OracleClient使用OracleServicesforMicrosoftTransactionServer......
  • oracle查询用户的权限
    DBA_*描述的是数据库中的所有对象ALL_*描述的是当前用户有访问权限的所有对象USER_*描述的是当前用户所拥有的所有对象 查看所有用户: select*fromdba_users;  --->显示所有用户的详细信息select*fromall_users; ......
  • Oracle 数据库表空间运维
    --https://blog.csdn.net/hanjianahanjian/article/details/83871567--1、block:是Oracle中存储数据块的最小单位,所以数据最终都是存储在block中。它也被称为逻辑blocks或是页(pages)。每个操作系统都有自己的blocksize。而这里的block是Oracle自己的,不同2于2、extent:OS的blocks......
  • 6、oracle授予普通用户dba权限以及回收
    oracle授予普通用户dba权限以及回收1、授予dba权限grantdbato普通用户;2、回收dba权限revokedbafrom普通用户;......
  • 12、oracle锁表查询spid进行杀掉
    oracle锁表查询spid进行杀掉1、查询SELECTA.SPID,B.SID,B.SERIAL#,B.USERNAMEFROMV$PROCESSA,V$SESSIONBWHEREA.ADDR=B.PADDRANDB.STATUS='KILLED';2、linuxOs执行杀掉进程kill-9SPID......
  • 13、oracle查看锁表
    oracle查看锁表1、查看以及执行解锁表SELECTDISTINCT'altersystemkillsession'''||s.sid||','||s.serial#||',@'||s.inst_id||'''immediate;'ASkill_session_scripts,......
  • Oracle系列---【表空间常用命令】
    1.创建表空间#创建大小为30G且开启自增的表空间CREATETABLESPACETEST_COM_SDM_FRONTDATAFILE'/oradata/ORA19/datafile/TEST_COM_SDM_FRONT_01.dbf'SIZE30024MAUTOEXTENDON;2.查看表空间使用情况#表空间数据文件维度使用率查询SELECTb.TABLESPACE_NAME,b......
  • Oracle Hint(提示)之INDEX_COMBINE
    INDEX_COMBINE提示的作用和使用方法INDEX_COMBINE提示是指导优化器,通过联合访问一个表上的多个索引来实现数据的检索。而“联合访问”的实现,是通过在目标索引上施加对应的过滤条件,将过滤后的结果行的ROWID转换为位图,然后做按位AND(对应于相关条件之间是AND的关系),或者按位OR(对应于相......