Apakah peran memiliki pemilik di oracle?

8

Misalkan saya telah masuk ke database oracle menggunakan pengguna X, maka pengguna X membuat beberapa peran menggunakan create roleperintah. Saya ingin tahu bahwa pengguna X adalah pemilik peran? Bisakah saya memilih semua peran yang dibuat oleh pengguna X?

rahim asgari
sumber

Jawaban:

4

Peran dalam Oracle Database tidak memiliki pemilik dan direktori tidak memiliki pemilik.

Ketika pengguna dengan CREATE ROLEatau SYSDBAhak istimewa membuat peran, dia secara otomatis diberi peran itu WITH ADMIN OPTIONyang berarti bahwa pengguna kemudian dapat memberikan peran itu kepada pengguna lain bahkan jika hak istimewa CREATE ROLEdicabut dari pengguna.

Anda bisa melihat peran apa yang ditugaskan ke DBA_ROLE_PRIVStampilan permintaan pengguna mana , atau USER_ROLE_PRIVSjika Anda ingin tahu peran apa yang ditugaskan untuk pengguna saat ini.

Selain itu, pengguna tidak dapat membuat peran jika peran dengan nama yang sama sudah ada. Namun Anda dapat mengaudit penciptaan peran dan pemberian. Anda dapat melakukannya dengan pernyataan AUDIT ROLE (jika karena alasan tertentu dinonaktifkan NOAUDIT ROLE), lalu meminta DBA_AUDIT_TRAILtampilan.

Yasir Arsanukaev
sumber
1

Meskipun sebuah peran tidak memiliki pemilik, dba_role_privs memperlihatkan pengguna dan peran yang diberikan pada hak istimewa.

--This lists both users and roles
SELECT * FROM dba_role_privs
WHERE admin_option = 'YES'
order by grantee, granted_role;

Batin Gabung ke dba_users untuk melihat hanya pengguna dengan opsi admin pada peran.

--This lists only users with admin option on roles
SELECT rp.grantee, rp.granted_role, rp.admin_option
FROM dba_role_privs rp
JOIN dba_users u
  ON rp.grantee = u.username
WHERE admin_option = 'YES'
ORDER BY grantee, granted_role;
ExcessOperatorHeadspace
sumber
0

Jika Anda memiliki opsi admin atas peran, Anda dapat menjatuhkan peran itu, bahkan jika Anda tidak memiliki hak istimewa peran jatuh atau "memiliki" peran, seperti pada, Anda tidak membuat peran.

Berkilau
sumber