首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要在oracle12c中编写c##来创建用户?

问为什么要在oracle12c中编写c##来创建用户?
EN

Database Administration用户
提问于 2016-02-12 14:03:50
回答 2查看 2.3K关注 0票数 2

我尝试在oracle 12c中创建用户帐户。但它显示了错误:

ORA-65096:无效的通用用户或角色名称。

我尝试了以下两个用户名:

代码语言:javascript
复制
BANNER
-----------------------------------------------------------------------------
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL> CREATE USER A3 IDENTIFIED BY p3;
CREATE USER A3 IDENTIFIED BY p3
            *
ERROR at line 1:
ORA-65096: invalid common user or role name


SQL> CREATE USER testUser IDENTIFIED BY pass;
CREATE USER testUser IDENTIFIED BY pass
            *
ERROR at line 1:
ORA-65096: invalid common user or role name


SQL> CREATE USER c##testUser IDENTIFIED BY pass;

User created.

SQL>

然后我搜索并找到了一个解决方案,我必须在用户名之前编写c##。

原因我还不清楚。你能跟我说清楚吗?

EN

回答 2

Database Administration用户

发布于 2016-02-12 14:28:35

您有一个容器数据库,并且您在CDB$ROOT容器中。

在根容器中,只能创建普通用户。

CDB中的本地用户

根目录中无法创建本地用户。

普通用户的名称必须以c##开头。

CDB中的普通用户

“每个用户创建的公共用户的名称必须以字符C##或c##开头。(Oracle提供的公共用户名不受此限制。)

有关容器数据库中用户的概述,请阅读国开行的共性概述。

票数 1
EN

Database Administration用户

发布于 2016-02-12 14:29:07

这一切在文献资料中都有解释:

当您创建一个公共用户帐户时,请注意一些限制,例如可以在哪里创建这些帐户、它们的命名约定以及可以存储在它们的架构中的对象的种类.您为普通用户指定的名称必须以C##或c##开头,并且只包含ASCII或EDCDIC字符。(此要求不适用于现有Oracle提供的用户帐户的名称,如SYS或SYSTEM)。

这本质上是因为您已经创建了一个具有多租户功能的数据库,并且正在尝试在根中创建一个用户。

阅读多租户- 文档链接。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/129098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档