簡體   English   中英

如何在Oracle數據庫的DBA_SYS_PRIVS表中標識用戶帳戶

[英]How to identify user account in DBA_SYS_PRIVS table in Oracle Database

我正在嘗試在DBA_SYS_PRIVS表中查找具有某些特權的所有用戶。 該表具有GRANTEE列,並且根據Oracle官方網站,GRANTEE列顯示“接受授予的被授予者姓名,用戶或角色”。 那么我怎么知道GRANTEE是帳戶還是角色? 例如,在Oracle DB中有一個名為SYS的角色,還有一個名為SYS的帳戶。 那么我怎么知道這是一個帳戶還是角色????

同樣在表DBA_TAB_PRIVS中,有一列稱為GRANTEE。 在此表中,GRANTEE列是“授予訪問權限的用戶名”。 所以我很困惑,因為“ GRANTEE”列在兩個不同的表中表示不同的東西

請幫忙,謝謝ssssssssssss

在Oracle中沒有SYS角色。

 SQL> select * from dba_roles where role='SYS';

 no rows selected

實際上,您無法創建與用戶名相同名稱的角色。

 SQL> create role sys;
 create role sys
        *
 ERROR at line 1:
ORA-01921: role name 'SYS' conflicts with another user or role name

僅獲取不帶用戶名的角色。

SQL>select grantee from dba_sys_privs where grantee not in(select username from all_users);

僅獲取沒有角色的用戶。

 SQL>select grantee from dba_sys_privs where grantee in(select username from all_users)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM