当前位置:   article > 正文

oracle创建用户时报公用用户名或角色名无效

公用用户名或角色名无效

报错:ORA-65096: invalid common user or role name(公用用户名或角色名无效)。
原因:可能是创建角色的容器为cdb导致,当然如果你想继续执行,可以在角色名前加C##或者c##,但是这样会导致用户名多了c##,有时候我们不希望用这种格式创建命名。

解决一:把容器改成pdb。注:这种方式不能正常导入数据库文件。
1、用sysdba 登录,否则权限不够

sqlplus / as sysdba
  • 1

2、查询容器是否CDB

select name,cdb,open_mode,con_id from v$database;
  • 1

在这里插入图片描述

3、查看当前容器

show con_name;
  • 1

在这里插入图片描述

4、查看已经创建的pdb容器

show pdbs;
  • 1

在这里插入图片描述

这个是创建数据库时创建的可插入数据库名

5、打开上述相应的容器

 alter pluggable database orcl_in open;
  • 1

在这里插入图片描述

6、 将当前容器切换到指定的PDB容器中,可插拔数据库(PDB)

alter session set container = ORCL_IN;
  • 1

在这里插入图片描述

7、之后就可以正常创建用户了,不过该用户不在cdb容器,而是在pdb

在这里插入图片描述
注意:重新登录超级管理员 sysdba 之后,当前容器会变回默认的pdb。

8、在cmd登录新创建的用户
sqlplus 用户名/密码@数据库 as sysdba =========> eg: sqlplus cwcs/ntidba@orcl as sysdba
或者

1、sqlplus
2、用户名 as sysdba
3、最后输入密码
如下图所示
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
**注:**以普通用户登录不了,也有可能是我的原因。

9、在pl/sql工具登录
在这里插入图片描述
解决二:这种可以正常导入数据库文件到指定的用户数据库
oracle 创建用户如何不用加C##

alter session set "_ORACLE_SCRIPT"=true;
  • 1

附加内容:
1、创建表空间

CREATE TABLESPACE WCS_DATA
LOGGING
DATAFILE ‘D:\app\hp\oradata\ORCL\WCS_DATA.DBF’
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;

2、创建用户并绑定表空间

CREATE USER jbfl
IDENTIFIED BY VALUES ‘ntidba’
DEFAULT TABLESPACE WCS_DATA
PROFILE DEFAULT
ACCOUNT UNLOCK;

3、授权

grant create session to jbfl;----授权
GRANT DBA TO jbfl;----授权
GRANT CONNECT TO jbfl;
GRANT RESOURCE TO jbfl;
GRANT DBA TO jbfl;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/227957
推荐阅读
相关标签
  

闽ICP备14008679号