CDB PDB 用户权限管理

2022-07-06 18:10:02 浏览数 (1)

公用用户和本地用户

代码语言:javascript复制
SYS@cdb1> select username,common,con_id from cdb_users
where username in ('SYS','HR');
COMMON 列显示 YES 为公共用户,在所有容器包括将来创建的 PDB 中均存在
COMMON 列显示 NO 为本地用户,仅在当前容器中存在

cdb 中创建公用用户

代码语言:javascript复制
创建公共用户 c##user01,设置密码为 oracle
SYS@cdb1> create user c##user01 identified by oracle;
SYS@cdb1> select username,common,con_id from cdb_users
where username in ('SYS','HR','C##USER01');

pdb 中创建本地用户

代码语言:javascript复制
pdb 中创建本地用户 user02
SYS@pdb1> create user user02 identified by oracle;
SYS@pdb1> select username,common,con_id from cdb_users
where username in ('SYS','HR','C##USER01','USER02');

公用和本地权限和角色

cdb 中给公用用户授权

代码语言:javascript复制
在 cdb 中指定 container=current 进行授权
SYS@cdb1> grant connect to c##user01 container=current;
cdb 有权限登录, pdb 没有权限
sqlplus c##user01/oracle@cdb1
sqlplus c##user01/oracle@pdb1

在 cdb 中授权指定 container=all
SYS@cdb1> grant connect to c##user01 container=all;
cdb pdb 都有权限

pdb 中给本地用户授权

pdb 中对本地用户授权,指定 container=all 报错,指定 container=current 成功

代码语言:javascript复制
SYS@pdb1> grant connect to user02 container=all;
SYS@pdb1> grant connect to user02 container=current;

0 人点赞