Почему пользователь pluggable db стал администратором? - PullRequest
0 голосов
/ 05 августа 2020

У меня есть следующие команды в скрипте:

ALTER SESSION SET CONTAINER = orclpdb
ALTER session set "_ORACLE_SCRIPT"=true;
CREATE PROFILE test_profile LIMIT password_life_time unlimited;

CREATE USER test IDENTIFIED BY test123
PROFILE test_profile

при удалении пользователя с помощью:

ALTER SESSION SET CONTAINER = orclpdb;
DROP USER test cascade;

Я получаю:

ora-28014 cannot drop administrative users

Моя первая проблема вот как этот test пользователь получает права администратора. Во-вторых, есть ли способ сделать это лучше.

1 Ответ

1 голос
/ 05 августа 2020

Причина, по которой пользователь становится ADMIN, связана с тем, что вы используете параметр подчеркивания _oracle_script=true

ORA-28014: Невозможно удалить административных пользователей (Do c ID 1566042.1 )

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=267287602351459&id=1566042.1&_afrWindowMode=0&_adf.ctrl-state=w6ehg2ftt_53

Как указано в Oracle в этом документе:

Пользователи считаются административными пользователями, если созданный с помощью скрипта catcon.pl, или в этом сеансе параметр "_oracle_script" установлен в TRUE.

Вы не должны использовать его при создании пользователей или в чем-либо еще в этом отношении, кроме случаев, когда вы необходимо удалить пользователя с правами администратора, что в этом случае необходимо.

Чтобы этого избежать, при создании пользователей вообще избегайте использования параметра _oracle_script.

...