重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛
标题: [检验流程]43、Examine this configuration: [打印本页]
作者: Inkcup 时间: 2026-1-28 09:01
标题: [检验流程]43、Examine this configuration:
本帖最后由 Inkcup 于 2026-1-28 09:12 编辑
题目:
43、Examine this configuration:
1.CDB1 is a container database.
2.COMMON_USER_PREFIX is C##.
3.PDB1 is a pluggable database contained in CDB1.
4.APP1_ROOT is an application container contained in CDB1.
5.APP1_PDB1 is an application PDB contained in APP1_ROOT.
You execute these commands successfully:
SQL> CREATE USER c##user1 identified by oracle_4U container=all;
User created.
SQL> ALTER SESSION SET CONTAINER=pdb1;
Session altered.
SQL> CREATE USER p1_user1 identified by oracle_4U;
User Created.
SQL> ALTER SESSION SET CONTAINER=app1_root;
Session altered.
SQL> ALTER PLUGGABLE DATABASE APPLICATION app1_cdb1_app BEGIN INSTALL '1.0';
Session altered.
SQL> CREATE USER app1_user1 IDENTIFIED BY oracle_4U;
User Created.
SQL> ALTER PLUGGABLE DATABASE APPLICATION app1_cdb1_app END INSTALL '1.0';
Pluggable database altered.
Which two are true? (Choose two.)
A) APP1_USER1 can be created in PDB1.
B) APP1_USER1 can be created in CDB1.
C) APP1_USER1 can have different privileges in each Application PDB contained in APP1_ROOT.
D) C##_APP_USER1 can be created in CDB1.
E) P1_USER1 can be created in CDB1.
F) C##_USER1 will have the same privileges and roles granted in all PDBs in CDB1.
Answer: A D
检验流程:
=========================================
创建题目要求的PDB1
-- 1. 从PDB$SEED创建PDB1
CREATE PLUGGABLE DATABASE pdb1
ADMIN USER pdbadmin IDENTIFIED BY oracle
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/cdb1/pdbseed/',
'/u01/app/oracle/oradata/cdb1/pdb1/');
-- 2. 打开PDB1
ALTER PLUGGABLE DATABASE pdb1 OPEN;
-- 3. 验证
SELECT name, open_mode FROM v$pdbs WHERE name = 'PDB1';
=========================================
创建应用程序容器APP1_ROOT
-- 1. 创建应用程序容器
CREATE PLUGGABLE DATABASE app1_root AS APPLICATION CONTAINER
ADMIN USER appadmin IDENTIFIED BY oracle
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/CDB2/pdbseed/',
'/u01/app/oracle/oradata/CDB2/app1_root/');
-- 2. 打开APP1_ROOT
ALTER PLUGGABLE DATABASE app1_root OPEN;
-- 3. 切换到应用程序容器
ALTER SESSION SET CONTAINER = app1_root;
-- 4. 验证应用程序容器
SELECT con_id, name, application_root, application_pdb, application_seed
FROM v$pdbs
WHERE application_root = 'YES';
=========================================
在应用程序容器中创建APP1_PDB1
-- 确保当前在APP1_ROOT容器中
ALTER SESSION SET CONTAINER = app1_root;
-- 创建应用程序PDB
CREATE PLUGGABLE DATABASE app1_pdb1
ADMIN USER app_pdb_admin IDENTIFIED BY oracle
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/CDB2/pdbseed/',
'/u01/app/oracle/oradata/CDB2/app1_pdb1/');
-- 打开APP1_PDB1
ALTER PLUGGABLE DATABASE app1_pdb1 OPEN;
=========================================
执行题目中的命令序列
-- 1. 创建公共用户c##user1(在CDB$ROOT中)
ALTER SESSION SET CONTAINER = CDB$ROOT;
CREATE USER c##user1 IDENTIFIED BY oracle_4U CONTAINER=ALL;
-- 2. 切换到PDB1
ALTER SESSION SET CONTAINER = pdb1;
-- 3. 在PDB1中创建本地用户p1_user1
CREATE USER p1_user1 IDENTIFIED BY oracle_4U;
-- 4. 切换到APP1_ROOT
ALTER SESSION SET CONTAINER = app1_root;
-- 5. 开始安装应用程序
ALTER PLUGGABLE DATABASE APPLICATION app1_cdb1_app BEGIN INSTALL '1.0';
-- 6. 在应用程序容器中创建应用程序公共用户
CREATE USER app1_user1 IDENTIFIED BY oracle_4U;
-- 7. 结束安装
ALTER PLUGGABLE DATABASE APPLICATION app1_cdb1_app END INSTALL '1.0';
=========================================
检验题目:
A:APP1_USER1 can be created in PDB1.
SQL> ALTER SESSION SET CONTAINER = pdb1;
Session altered.
SQL> SELECT username FROM all_users WHERE username = 'APP1_USER1';
no rows selected
SQL> ALTER SESSION SET CONTAINER = pdb1;
Session altered.
SQL> CREATE USER app1_user1 IDENTIFIED BY oracle;
User created.
SQL> SELECT username FROM all_users WHERE username = 'APP1_USER1';
USERNAME
--------------------------------------------------------------------------------
APP1_USER1
证明可以在pdb1里创建APP1_USER1
--------------------------------
B:APP1_USER1 can be created in CDB1.
不行,没有C##
--------------------------------
C:APP1_USER1 can have different privileges in each Application PDB contained in APP1_ROOT.
在升级结束之后再授权:应用pdb2同步后也无法获得相同授权。