安装完后按11g方式创建用户的时候报错:
试图创建一个通用用户,必需要用C##或者c##开头
代码如下:
create user username identified by password default tablespace user_data temporary tablespace user_temp;
特别发现:12C创建用户的时候需要C##开头。
12C的新特性CBD(Container Database)与PDB(Pluggable Database),具体还要在研究下。
网上搜到的解决方案如下:
1、打开cmd输入sqlplus,或者在所有程序里面找到Sql plus进入到Sql plus。输入:sys/manager as sysdba,以超级管理员的权限登录数据库,所以登录这个账号你可以修改其他账号的密码和创建新用户。
2、创建用户及附权限:
create user c##用户名 identified by 密码;
为刚创建的用户解锁:alter user c##用户名 account unlock;
授予新用户创建权限:grant create session to c##用户名 ;
授予新用户数据库管理员权限:grant dba to c##用户名;
授予用户其它权限:
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESOURCE,CREATE SESSION TO c##用户名;
---解释报错原因:
创建用户默认的是container=all,在cdb中只能创建全局用户(c##开头),
会在cdb和所有的pdb中创建该用户(但是pdb中的全局用户需要另外授权才能够在pdb中访问)。
在pdb中只能创建的用户为本地用户。通过指定container :alter
session
set
container=pdboralce,再创建user就不用加c##,用
create
user
username identified
by
password就可以。