Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để liệt kê TẤT CẢ các khoản trợ cấp mà người dùng nhận được?

Nếu bạn không chỉ muốn cấp trực tiếp bảng (ví dụ:cấp qua vai trò, đặc quyền hệ thống như chọn bảng bất kỳ, v.v.), thì đây là một số truy vấn bổ sung:

Đặc quyền hệ thống cho người dùng:

SELECT PRIVILEGE
  FROM sys.dba_sys_privs
 WHERE grantee = <theUser>
UNION
SELECT PRIVILEGE 
  FROM dba_role_privs rp JOIN role_sys_privs rsp ON (rp.granted_role = rsp.role)
 WHERE rp.grantee = <theUser>
 ORDER BY 1;

Cấp trực tiếp cho bảng / chế độ xem:

SELECT owner, table_name, select_priv, insert_priv, delete_priv, update_priv, references_priv, alter_priv, index_priv 
  FROM table_privileges
 WHERE grantee = <theUser>
 ORDER BY owner, table_name;

Tài trợ gián tiếp cho bảng / chế độ xem:

SELECT DISTINCT owner, table_name, PRIVILEGE 
  FROM dba_role_privs rp JOIN role_tab_privs rtp ON (rp.granted_role = rtp.role)
 WHERE rp.grantee = <theUser>
 ORDER BY owner, table_name;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xuất kết quả truy vấn sang csv trong Oracle SQL Developer?

  2. Oracle SQL - Tính tổng và nhóm dữ liệu theo tuần

  3. Oracle DateTime trong mệnh đề Where?

  4. Làm cách nào để gọi một thủ tục được lưu trữ Oracle từ một tập lệnh VBA trong Excel?

  5. Sự khác biệt giữa hàm RANK () và DENSE_RANK () trong oracle là gì?