Existe algumas operações a nível de PDB que podem ter uma interface e interação com a camada de Sistema Operacional, como por exemplo External Jobs, External Tables e execucação de PL/SQL libraries. Dependendo a situação, configurar um usuário de S.O para cada PDB seria uma boa alternativa. Esse tipo de abordagem é possível graças ao parâmetro PDB_OS_CREDENTIAL, que nos permite definir um usuário de S.O para o nosso PDB, e isso não afeta a criação de datafiles desse PDB.
Conectando no root container e criando uma credencial através do comando abaixo:
[oracle@quiasma ~]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Fri Apr 16 04:38:08 2021
Version 18.13.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.13.0.0.0
SQL> BEGIN
DBMS_CREDENTIAL.CREATE_CREDENTIAL (
CREDENTIAL_NAME => 'BSS',
USERNAME => 'oracle', PASSWORD => 'Teste#123');
END; 2 3 4 5
6 /
PL/SQL procedure successfully completed.
Logando no PDB em questão e checando o valor atual do parâmetro:
SQL> ALTER SESSION SET CONTAINER=HIPOFISE1;
Session altered.
SQL> SHO PARAMETER PDB_OS_CREDENTIAL
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pdb_os_credential string
Alterando o seu valor para o ALIAS que definimos no root container:
SQL> ALTER SYSTEM SET PDB_OS_CREDENTIAL=BSS SCOPE=SPFILE;
System altered.
Reiniciando o CDB e checando que a partir desse momento o PDB está apto a utilizar o usuário específico para suas operações:
SQL> conn / as sysdba
Connected.
SQL> shu immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.
Total System Global Area 2466249080 bytes
Fixed Size 8898936 bytes
Variable Size 671088640 bytes
Database Buffers 1778384896 bytes
Redo Buffers 7876608 bytes
Database mounted.
Database opened.
SQL> ALTER SESSION SET CONTAINER=HIPOFISE1;
Session altered.
SQL> SHO PARAMETER PDB_OS_CREDENTIAL
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pdb_os_credential string BSS
Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.