Разблокировать пользователя в базе данных PDB - PullRequest
3 голосов
/ 11 апреля 2020

Каждый раз, когда я включаю свой компьютер и пытаюсь подключиться к базе данных HR, всплывающее сообщение об ошибке блокируется, затем я go обращаюсь к SQLPLUS и регистрируюсь как SYSDBA, и выполняю следующий сценарий:

Мой вопрос: всегда ли я должен это делать? Есть ли способ сохранить его всегда UNLOCKED?

1.- sqlplus / as sysdba

2.- show con_name;

3.- ALTER SESSION SET CONTAINER = orclpdb;

4.- COLUMN name FORMAT a20;

5.- SELECT name, open_mode from v$pdbs;

6.- ALTER PLUGGABLE DATABASE open;

7.- ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;

8- conn hr/hr@orclpdb

9.- SHOW USER;

1 Ответ

3 голосов
/ 11 апреля 2020

Пожалуйста, прочитайте Oracle 12 c После установки Обязательные шаги

Чтобы открыть все / указанные c PDB сразу после входа в систему, создайте ПОСЛЕ ЗАПУСКА триггер системного уровня в CDB.

Так как PDB не открываются при запуске CDB. Давайте посмотрим:

SHUTDOWN IMMEDIATE;
STARTUP;

SQL> SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDBP6                          MOUNTED

Как вы могли заметить, PDB все еще находится в смонтированном состоянии и не открыта для чтения / записи.

Итак, чтобы автоматически иметь все PDB. открыть , сделать это:

Do, SQLPLUS / AS SYSDBA, а затем выполнить:

CREATE OR REPLACE TRIGGER open_pdbs 
  AFTER STARTUP ON DATABASE 
BEGIN 
   EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; 
END open_pdbs;
/

Создает триггер уровня системы после запуска в CDB.

Теперь разблокируйте пользователя:

sqlplus SYS/password@PDBORCL AS SYSDBA

SQL> ALTER USER hr ACCOUNT UNLOCK IDENTIFIED BY hr;

sqlplus hr/hr@pdborcl

SQL> show user;
USER is "HR"

Теперь вам не нужно открывать PDB вручную, просто подключитесь к PDB и нужному пользователю.

От 12.1.0.2 вперед, вы можете сохранить состояние запуска PDB через перезапуск CDB:

ALTER PLUGGABLE DATABASE pdb_name OPEN;
ALTER PLUGGABLE DATABASE pdb_name SAVE STATE;

Чтобы отменить сохраненное состояние:

ALTER PLUGGABLE DATABASE pdb_name DISCARD STATE;
...