QUESTION 70、CDB/PDB/CONTAINER=ALL、

In your multitenant container database (CDB) containing pluggable database (PDBs), you granted the CREATE TABLE privilege to the common user C # # A_ADMIN in root and all PDBs. You execute the following command from the root container:
SQL > REVOKE create table FROM C # # A_ADMIN;
What is the result?
A. It executes successfully and the CREATE TABLE privilege is revoked from C # # A_ADMIN in root only.
B. It fails and reports an error because the CONTAINER=ALL clause is not used.
C. It excludes successfully and the CREATE TABLE privilege is revoked from C # # A_ADMIN in root and all PDBs.
D. It fails and reports an error because the CONTAINER=CURRENT clause is not used.
E. It executes successfully and the CREATE TABLE privilege is revoked from C # # A_ADMIN in all PDBs.
Correct Answer: B

在cdb下创建用户默认是container=all,不能设置container=current

在pdb下创建用户默认是container=current,不能设置container=all

 

SQL> create user c##admin identified by stipsi container=all;
User created.
SQL> grant create table to c##admin container=all;
Grant succeeded.
SQL> revoke create table from c##admin;
revoke create table from c##admin
*
ERROR at line 1:
ORA-65092: system privilege granted with a different scope to 'C##ADMIN'

权限回收,针对的是授权,我们回顾下授权的作用域范围:需要注意的是,在考试中,经常考到在CDB级别授权及回收权限的作用域。

1. 在CDB级别中对用户进行授权,不带 container 子句的效果: 仅作用于当前CDB

2. 在CDB级别中对用户进行授权,带 container=all 子句的效果:作用于当前CDB和所有PDB

3. 在CDB级别中对用户进行授权,带 container=current 子句的效果:仅作用于当前CDB

4. 在PDB级别中对用户进行授权,不带 container 子句的效果:仅作用于当前PDB

5. 在PDB级别中对用户进行授权,带 container=all 子句的效果:X错误X PDB级别不能使用 ALL

6. 在PDB级别中对用户进行授权,带 container=current 子句的效果:仅作用于当前PDB

 

对于授权作用域,我们总结成三句话:也就是授权一共3种情况仅作用于CDB作用于全局仅作用于PDB

仅作用于CDB:CDB级别不带子句或带了 current 都只作用于当前CDB

作用于全局:CDB级别如果带了 ALL,将作用于CDB和所有PDB全局

仅作用于PDB:PDB级别不带子句或带了 current 都只作用于当前PDB,无法带 ALL

注意:以上3种情况的授权,分别又对应3种回收选项(不带子句,带 all,带 current),所以共计9种情况,逐个讨论。

在包含可插入数据库(pdb)的多租户容器数据库(CDB)中,您将CREATE TABLE特权授予了根用户c# # A_ADMIN和所有pdb。在根容器中执行如下命令:

SQL > REVOKE create table FROM c# # # A_ADMIN;

结果如何?

A.它执行成功,并且CREATE TABLE权限只在根目录下的c# # A_ADMIN被撤销。

B。它失败并报告一个错误,因为CONTAINER=ALL子句没有被使用。

C.成功排除,并且从root和所有pdb的c# # # A_ADMIN中撤销CREATE TABLE特权。

它失败并报告一个错误,因为CONTAINER=CURRENT子句没有被使用。

E.它会成功执行,并且在所有pdb中从c# # A_ADMIN撤销CREATE TABLE权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值