Jak odblokować schemat HR?



Odblokowanie przykładowego schematu HR w wersjach starszych niż 12c było banalnie proste. Wystarczyło ze schematu SYS wykonać
 alter user hr identified by hr account unlock;  
I voila - schemat HR gotowy do działania.
W 12c, gdy weszły kontenery, sprawy się pokomplikowały:
 alter user hr identified by hr account unlock;  
Error report -
ORA-01918: użytkownik 'HR' nie istnieje
01918. 00000 - "user '%s' does not exist"
*Cause: User does not exist in the system.
*Action: Verify the user name is correct.
Ale nie jest tak źle jak wygląda. Schemat HR jest, tylko nie tu gdzie szukamy.
Gdy logujemy się przez użytkownika SYS logujemy się do bazy CDB. I tu faktycznie nie ma schematu HR. Schemat HR zostal ukryty w bazie pluggable. Żeby móc oblokować schemat HR musimy się połączyć z bazą PDB (pluggable).
Jak to zrobić?
1. Nazwa bazy pdb
Z użytkownika SYS wykonajmy zapytanie
 SELECT name, con_id, open_mode FROM v$pdbs;  
PDB$SEEED nas nie interesuje. Nasza baza PDB to XEPDB1.
2. Aktualizacja tnsnames.ora
Musimy bazę PDB wpisać do TNSNAME'sów.
Plik TNSNAME znajduje się w katalogu

<ORA_HOME> product\18.0.0\dbhomeXE\network\admin
u mnie to będzie:
C:\app\user\product\18.0.0\dbhomeXE\network\admin
Wpisujemy połączenie do bazy (zamiast XEPDB1  wpisz nazwę swojej bazy):
  XEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = admin)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XEPDB1)
    )
  )

3. Zrestartuj listenera.

4. Otwieramy bazę XEPDB1
Sprawdzamy zapytaniem z pkt 1 czy nasza baza jest w trybie READ WRITE. Jeśli nie, możemy ją otworzyć poleceniem:
 ALTER PLUGGABLE DATABASE ALL OPEN;  
5. Połączenie się do kontenera XEPDB1
Ze schematu SYS łączymy się do kontenera
 ALTER SESSION SET container=XEPDB1;  
Przełączyć się z powrotem na roota możemy poleceniem
 ALTER SESSION SET container=CDB$ROOT;  
ale na razie tego nie róbmy, potrzebujemy być na bazie PDB.
6. Odblokowanie schematu HR
I w końcu, nareszcie możemy odblokować nasz przykładowy schemat HR!
 alter user hr identified by hr account unlock;
User HR altered.
7. Połączenie do schematu HR.
Musimy utworzyć polączenie do schematu HR. Pamiętajmy, że baza jest nie na SID standartowym, u mnie XE tylko na SID, który utworzyliśmy w pkt 2. Czyli u mnie XEPDB1.

I już możemy się cieszyć naszym pięknym, nowym schematem HR :)

Komentarze

Prześlij komentarz