Configuring an OS User for a PDB

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.

Leave a Comment

Your email address will not be published.