首页 > 解决方案 > Oracle 数据库的多租户架构中更改会话集容器所需的权限

问题描述

我在容器级别的 Oracle 19C 中有一个用户,我想授予他通过 alter session set container 命令在多个可插拔数据库之间切换的权限,而不授予他 sysdba/dba 权限。

请让我知道,如果这是可能的。

标签: oracleoracle-sqldevelopermulti-tenantdatabase-administrationoracle19c

解决方案


您不需要任何管理角色。仅当您尝试切换到的 PDB 当前已关闭时,才需要 SYSDBA、SYSOPER 等。

否则 -

-- drop user C##_JEFF;
-- USER SQL
CREATE USER C##_JEFF IDENTIFIED BY "oracle" container=all 
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP";

-- QUOTAS

-- ROLES

-- SYSTEM PRIVILEGES
GRANT CREATE SESSION TO C##_JEFF container=all;
GRANT SET CONTAINER to C##_JEFF container=all;

然后,由于您标记了 SQLDev -

在此处输入图像描述

当然,除了 Docs,Oracle-Base 有一篇关于这个概念的好文章。我会说,您实际上很少需要可以切换到任何非管理员帐户的 PDB 的 COMMON 用户。在开始之前,请确保您了解 CDB 的实际用途。大多数应用程序将在可插入数据库 (PDB) 中定义所需的一切。


推荐阅读