? ? ? ? 4
? ? ? ? 3
? ? ? ? 0
SQL> select distinct con_id from cdb_data_files;
?
? ? CON_ID
----------
? ? ? ? 4
? ? ? ? 3
? ? ? ? 1
?
---原因在于红色的部分还是生效的

---去除对于orapdbb的访问权限
SQL> alter user c##guser2 remove container_data=(orapdbb) container=current;
?
User altered.
?
---以c##guser2登陆Root查询cdb_data_files、v$session两个视图的内容,就不见了
con_id=4的记录
SQL> select distinct con_id from v$session;
?
? ? CON_ID
----------
? ? ? ? 1
? ? ? ? 3
? ? ? ? 0
?
SQL>? select distinct con_id from cdb_data_files;
?
? ? CON_ID
----------
? ? ? ? 3
? ? ? ? 1
?
---对于v$session视图限制放宽让c##guser2也能访问orapdbb相关的信息
SQL> alter user c##guser2 add container_data=(orapdbb) for v$session?
container=current;
?
User altered.
?
---以c##guser2登陆Root查询v$session视图又能看见con_id=4的记录,但
cdb_data_files里依然没有con_id=4的记录
User altered.
?
?[C1]此处未授权create session也可以set container成功,实际操作时还是同时附上create session比较好
?[C2]由于c##guser2未进行任何的container_data设置,也即相当于设置了set container_data=default,所以只能看到con_id=0、con_id=1的记录,0代表整个CDB,1代表CDB$ROOT
?[C3]必须包含Root,否则会报ORA-65057错误