Oracle PDB: differenze tra le versioni
Jump to navigation
Jump to search
Riga 17: | Riga 17: | ||
nel CDB: |
nel CDB: |
||
alter session set container=CDB$ROOT; |
alter session set container=CDB$ROOT; |
||
alter system set os_authent_prefix='C##' scope=spfile; |
alter system set os_authent_prefix='C##' scope=spfile; |
||
Riga 24: | Riga 23: | ||
nel CDB: |
nel CDB: |
||
alter session set container=CDB$ROOT; |
alter session set container=CDB$ROOT; |
||
create user c##user1 identified externally container=all; |
create user c##user1 identified externally container=all; |
||
grant alter session, create session to c##user1 container=all; |
grant alter session, create session to c##user1 container=all; |
||
Per consentire la visibilità degli altri container: |
|||
ALTER USER c##user1 SET CONTAINER_DATA=ALL CONTAINER=CURRENT; |
|||
Per vedere gli altri container: |
|||
alter user c##user1 set container_data=all container=current; |
|||
Trigger after connect per cambiare il PDB in base all'utente: |
Trigger after connect per cambiare il PDB in base all'utente: |
||
create or replace trigger SET_CONTAINER_AT_LOGON after logon on database |
create or replace trigger SET_CONTAINER_AT_LOGON after logon on database |
||
when (user in ('C##USER1')) |
when (user in ('C##USER1')) |
||
Riga 45: | Riga 36: | ||
Nel PDB: |
Nel PDB: |
||
alter session set container=PDB1 ; |
alter session set container=PDB1 ; |
||
grant set container to c##user1 container=current; |
grant set container to c##user1 container=current; |
||
Grant aggiuntive: |
Grant aggiuntive: |
||
grant resource to c##user1 container=current; |
grant resource to c##user1 container=current; |
||
Da sistema operativo: |
Da sistema operativo: |
||
Riga 60: | Riga 46: | ||
Per verificare a quale container siamo connessi, se SHOW PDBS non funziona: |
Per verificare a quale container siamo connessi, se SHOW PDBS non funziona: |
||
select sys_context('userenv', 'con_name') from dual; |
select sys_context('userenv', 'con_name') from dual; |
||
Versione delle 17:19, 16 dic 2020
PDB
Da sql:
show pdbs; show con_name; alter session set container=PDB1;
Variabili di ambiente
ORACLE_SID=CDB1 ORACLE_PDB_SID=PDB1 export ORACLE_SID ORACLE_PDB_SID sqlplus '/ as sysdba'
Utenti con autenticazione externally
nel CDB:
alter session set container=CDB$ROOT; alter system set os_authent_prefix='C##' scope=spfile;
Riavviare il DB se necessario.
nel CDB:
alter session set container=CDB$ROOT; create user c##user1 identified externally container=all; grant alter session, create session to c##user1 container=all;
Trigger after connect per cambiare il PDB in base all'utente:
create or replace trigger SET_CONTAINER_AT_LOGON after logon on database when (user in ('C##USER1')) begin execute immediate 'alter session set container=PDB1'; end; /
Nel PDB:
alter session set container=PDB1 ; grant set container to c##user1 container=current;
Grant aggiuntive:
grant resource to c##user1 container=current;
Da sistema operativo:
sqlplus /
Per verificare a quale container siamo connessi, se SHOW PDBS non funziona:
select sys_context('userenv', 'con_name') from dual;
References
https://mikedietrichde.com/2020/07/13/pitfalls-connect-to-a-pdb-directly-with-oracle_pdb_sid/