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

Làm thế nào để kiểm tra các đặc quyền (DDL, DML, DCL) trên các đối tượng được gán cho Lược đồ, Vai trò trong Cơ sở dữ liệu oracle?

Một chút ngắn gọn về tiền tố chế độ xem từ điển dữ liệu:

ALL_    -Describes PUBLIC Object grants.
USER_   -Describes current user Object grants.
DBA_    -Describes all object grants in the database.

Thông tin hữu ích về chế độ xem:

ROLE_ROLE_PRIVS     -describes the roles granted to other roles. 
ROLE_SYS_PRIVS      -describes system privileges granted to roles.
ROLE_TAB_PRIVS      -describes table privileges granted to roles. 
DBA_ROLE_PRIVS      -describes the roles granted to all users and roles in the database.
DBA_SYS_PRIVS       -describes system privileges granted to users and roles.
DBA_TAB_PRIVS       -describes all object grants in the database.
DBA_COL_PRIVS       -describes all column object grants in the database.

Để biết thêm về RIÊNG TƯ lượt xem truy cập đây .

Truy vấn:

-Về người dùng / trạng thái giản đồ

select username,account_status, created from dba_users where username in ('SCOTT');

-Kiểm tra các vai trò được chỉ định đối với vai trò và giản đồ

select * from DBA_ROLE_PRIVS where grantee in ('SCOTT','RESOURCE');

-Kiểm tra các đặc quyền của vai trò

select * from ROLE_ROLE_PRIVS where role in ('RESOURCE','CONNECT');    
select * from ROLE_TAB_PRIVS  where role in ('RESOURCE','CONNECT');
select * from ROLE_SYS_PRIVS  where role in ('RESOURCE','CONNECT');

Pseudo Code:
select 'grant '||privilege||' to ROLE_SLAVE;' from ROLE_SYS_PRIVS where role in ('RESOURCE','CONNECT');
select 'grant '||privilege||' to ROLE_SLAVE;' from ROLE_TAB_PRIVS where role in ('RESOURCE','CONNECT');

-Kiểm tra đặc quyền của các đối tượng được cấp cho lược đồ

select * from DBA_SYS_PRIVS where grantee in ('SCOTT');
select * from DBA_TAB_PRIVS where grantee in ('SCOTT');
select * from DBA_COL_PRIVS where grantee in ('SCOTT');

Pseudo Code: 
select 'grant '||privilege||' to SCOTT_SLAVE;' from DBA_SYS_PRIVS where grantee in ('SCOTT');
select 'grant '||privilege||' on '||owner||'.'||table_name||' to SCOTT_SLAVE;' from DBA_TAB_PRIVS where grantee in ('SCOTT');
select 'grant '||privilege||' ('||column_name||') '||' on '||owner||'.'||table_name||' to SCOTT_SLAVE;' from DBA_COL_PRIVS where grantee in ('SCOTT');

Cảm ơn bạn!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt giá trị mặc định của các trường trong bảng ORACLE thành một dạng

  2. Sự khác biệt giữa pls_integer và binary_integer là gì?

  3. Sự cố Tạo trình kích hoạt bằng Oracle

  4. Trả về tên cột Oracle ở định dạng table.column?

  5. Tương tác thường xuyên, lặp lại giữa tiên tri và hợp đồng thông minh