为什么可插入数据库用户成为管理员?

Why pluggable db user became administrator?

我在脚本中有以下命令:

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 用户是如何获得管理权限的。 其次,有没有更好的方法来做到这一点。

用户成为 ADMIN 的原因是您使用了下划线参数 _oracle_script=true

ORA-28014:无法删除管理用户(文档 ID 1566042.1)

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

正如 Oracle 在该文档中所述:

Users are considered administrative users when are created using the script catcon.pl, or in that session the parameter "_oracle_script" is set to TRUE.

您不应在创建用户或其他任何与此有关的事情时使用它,除非您需要删除管理用户,在这种情况下您必须这样做。

为避免这种情况,在创建用户时完全避免使用 _oracle_script 参数。