Answers:
危险
仅在Oracle支持的指导下设置像这样的未记录参数(如前划线所指示)。在没有此类指导的情况下更改此类参数可能会使您的支持合同无效。这样做的后果自负。
具体来说,如果您设置"_ORACLE_SCRIPT"=true
,则会在ORACLE_MAINTAINED列设置为'Y'的情况下进行一些数据字典更改。这些用户和对象将被错误地从某些DBA脚本中排除。并且它们可能不正确地包含在某些系统脚本中。
如果您可以接受上述风险,并且不想以正确的方式创建普通用户,请使用以下答案。
在创建用户运行之前:
alter session set "_ORACLE_SCRIPT"=true;
我刚安装了oracle11g
ORA-65096:oracle中的无效普通用户或角色名称
不,您已经安装了Oracle 12c。该错误只能存在12c
,而不能存在11g
。
始终检查数据库版本,最多4位小数:
SELECT banner FROM v$version WHERE ROWNUM = 1;
您必须已将该数据库创建为容器数据库。在尝试在容器(即CDB $ ROOT)中创建用户时,应在PLUGGABLE数据库中创建用户。
您不应该在容器中创建与应用程序相关的对象,容器包含可插入数据库的元数据。您应该对常规数据库操作使用可插拔数据库。否则,请勿将其创建为容器,也不要使用多租户。但是,从12cR2开始,您无论如何都无法创建非容器数据库。
而且很可能已经安装了示例模式,您只需要在可插入数据库中解锁它们即可。
例如,如果您将可插入数据库创建为pdborcl
:
sqlplus SYS/password@PDBORCL AS SYSDBA
SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;
sqlplus scott/tiger@pdborcl
SQL> show user;
USER is "SCOTT"
要显示PDB并从根容器连接到可插入数据库:
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
SQL> alter session set container = ORCLPDB;
Session altered.
SQL> show con_name;
CON_NAME
------------------------------
ORCLPDB
我建议阅读,Oracle 12c安装后强制性步骤
注意:_ORACLE_SCRIPT
在生产系统中,建议使用hidden参数设置为true的答案很危险,并且还可能使您的支持合同无效。当心,未经咨询Oracle支持,请勿使用隐藏参数。
在Oracle 12c及更高版本中,我们有两种类型的数据库:
如果要创建用户,则有两种可能性:
您可以创建“容器用户”或“普通用户”。
普通用户既属于CBD,也属于当前和将来的PDB。这意味着它们可以根据分配的特权在Container DB或Pluggable DB中执行操作。
create user c##username identified by password;
您可以创建一个“可插入用户”,也称为“本地用户”。
本地用户仅属于一个PDB。可以为这些用户提供管理特权,但只能为其存在的那个PDB提供管理特权。为此,您应该像这样连接到可插拔数据源:
alter session set container = nameofyourpluggabledatabase;
在这里,您可以像通常那样创建用户:
create user username identified by password;
不要忘记指定要使用的表空间,这在导入/导出数据库时很有用。请参阅此以获取有关它的更多信息https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503
创建用户对数据库连接工具的依赖
sql plus
SQL> connect as sysdba;
Enter user-name: sysdba
Enter password:
Connected.
SQL> ALTER USER hr account unlock identified by hr;
User altered
then create user on sql plus and sql developer
11g
,你应该继续12c
。