创建用户

Oracle 12c 创建新用户

Oracle12c 引入CDB/PDB 多租户架构,在容器数据库(CDB)中直接创建普通用户名会报错,CDB内创建的公用用户名必须以 c## / C## 作为前缀。

登录

  1. 打开Windows cmd,启动sqlplus
sqlplus
  1. 使用超级管理员账号登录数据库
请输入用户名: sys as sysdba
输入口令: 【填写安装时设置的sys密码】Code language: HTTP (http)

登录成功提示:连接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

创建用户

错误写法

目标:创建用户 cat,密码 123456
执行SQL:

CREATE USER cat IDENTIFIED BY 123456;
ORA-65096: 公用用户名或角色名无效Code language: HTTP (http)

报错原因:当前处于CDB根容器,创建公用用户(Common User)名称强制要求前缀 c##cat 不符合命名规范。

正确创建公用用户

执行SQL:

CREATE USER c##cat IDENTIFIED BY Bm123321;Code language: CSS (css)

执行结果:用户已创建。

分配用户权限

错误授权语句
GRANT CONNECT, RESOURCE, DBA TO cat;
ORA-01917: 用户或角色 'CAT' 不存在Code language: JavaScript (javascript)

用户名是 c##cat,授权时用户名必须和创建时完全一致,不能简写为cat

正确授权语句
GRANT CONNECT, RESOURCE, DBA TO c##cat;Code language: CSS (css)

权限说明:

  1. CONNECT:基础登录连接权限
  2. RESOURCE:开发常用资源角色,允许创建表、索引等对象
  3. DBA:完整数据库管理员权限(测试环境使用,生产环境不建议随意分配)

新用户登录验证

  1. 执行 exit 退出sys管理员会话,重新打开sqlplus
SQL> exitCode language: PHP (php)
  1. 尝试错误登录
请输入用户名: cat
输入口令: 123456Code language: HTTP (http)

报错:ORA-01017: 用户名/口令无效; 登录被拒绝

  1. 正确方式
请输入用户名: c##cat
输入口令: 123456Code language: HTTP (http)

成功连接数据库。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注