如何控制common user在cdb里对于pdb信息的访问(二)

2015-02-02 20:42:45 · 作者: · 浏览: 16
? ? 1


? ? ? ? 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错误