Rumah >pangkalan data >Oracle >kebenaran pengguna pertanyaan oracle
Dalam pangkalan data Oracle, kebenaran pengguna merujuk kepada kebenaran yang membenarkan atau tidak membenarkan pengguna melakukan operasi tertentu. Apabila pengguna melakukan operasi tertentu yang memerlukan kebenaran khas, sistem menyemak sama ada pengguna mempunyai kebenaran yang sepadan.
Menyoal kebenaran pengguna ialah tugas penting dalam mengurus pangkalan data Oracle. Pentadbir boleh menyemak kebenaran pengguna untuk memahami operasi yang boleh dilakukan oleh pengguna dan cara mengurus pangkalan data dengan lebih baik. Artikel ini akan memperkenalkan beberapa kaedah untuk menanyakan kebenaran pengguna Oracle.
Kaedah 1: Gunakan pandangan yang disediakan secara rasmi oleh Oracle
Oracle menyediakan beberapa pandangan yang boleh menanyakan kebenaran pengguna dalam pangkalan data. Antara paparan ini, paparan yang paling biasa digunakan ialah paparan "DBA_SYS_PRIVS" dan "DBA_TAB_PRIVS".
Paparan DBA_SYS_PRIVS mengandungi semua maklumat kebenaran peringkat sistem, termasuk operasi peringkat sistem, seperti mencipta pengguna, mencipta peranan, mengubah suai parameter, dsb. Paparan ini mempunyai banyak medan, antaranya medan "GRANTE" mewakili pengguna yang menerima kebenaran ini.
Untuk menanyakan kebenaran sistem pengguna, anda boleh menggunakan pernyataan berikut:
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'username';
Paparan DBA_TAB_PRIVS mengandungi maklumat kebenaran tentang jadual, paparan dan jujukan. Medan "GRANTEE" mewakili pengguna yang menerima kebenaran ini, medan "TABLE_SCHEMA" mewakili skema di mana jadual terletak, medan "TABLE_NAME" mewakili nama jadual dan medan "PRIVILEGE" mewakili operasi yang pengguna boleh melakukan.
Untuk menanyakan kebenaran pengguna pada jadual, anda boleh menggunakan pernyataan berikut:
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'username' AND TABLE_SCHEMA = 'schema_name' AND TABLE_NAME = 'table_name';
Kaedah 2: Gunakan paparan USER_SYS_PRIVS dan USER_TAB_PRIVS
Sebagai tambahan kepada Pandangan DBA_SYS_PRIVS dan DBA_TAB_PRIVS , Oracle juga menyediakan paparan USER_SYS_PRIVS dan USER_TAB_PRIVS untuk menanyakan kebenaran sistem dan peringkat jadual pengguna semasa.
Untuk menanyakan kebenaran sistem pengguna semasa, anda boleh menggunakan pernyataan berikut:
SELECT * FROM USER_SYS_PRIVS;
Untuk menanya kebenaran pengguna semasa pada jadual, anda boleh menggunakan pernyataan berikut:
SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = 'table_name';
Kaedah 3 : Gunakan paparan V$SESSION
Paparan V$SESSION mengandungi maklumat tentang semua sesi semasa, termasuk maklumat kebenaran untuk setiap pengguna. Dengan menanyakan pandangan ini, anda boleh mendapatkan maklumat kebenaran pengguna semasa.
Untuk menanyakan kebenaran pengguna semasa, anda boleh menggunakan pernyataan berikut:
SELECT * FROM V$SESSION WHERE AUDSID = USERENV('SESSIONID');
Pernyataan ini akan mengembalikan maklumat yang berkaitan dengan kebenaran pengguna semasa, termasuk nama pengguna, peranan, kebenaran nama, dsb.
Kaedah 4: Gunakan pernyataan PL/SQL
Kaedah terakhir ialah menggunakan pernyataan PL/SQL untuk menanyakan kebenaran pengguna. Berikut ialah contoh menanyakan semua kebenaran pengguna:
DECLARE v_count NUMBER; BEGIN SELECT COUNT(*) INTO v_count FROM DBA_SYS_PRIVS WHERE GRANTEE = 'username'; IF v_count > 0 THEN DBMS_OUTPUT.PUT_LINE('System privileges:'); FOR i IN (SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'username' ORDER BY PRIVILEGE) LOOP DBMS_OUTPUT.PUT_LINE(i.PRIVILEGE); END LOOP; END IF; SELECT COUNT(*) INTO v_count FROM DBA_TAB_PRIVS WHERE GRANTEE = 'username'; IF v_count > 0 THEN DBMS_OUTPUT.PUT_LINE('Table privileges:'); FOR i IN (SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'username' ORDER BY TABLE_NAME, PRIVILEGE) LOOP DBMS_OUTPUT.PUT_LINE(i.TABLE_NAME || ' ' || i.PRIVILEGE); END LOOP; END IF; END;
Program PL/SQL ini akan menanyakan kebenaran sistem dan jadual pengguna dan mengeluarkan hasilnya kepada konsol.
Kesimpulan
Menyoal kebenaran pengguna Oracle ialah salah satu kemahiran yang mesti dikuasai oleh pentadbir pangkalan data dan pembangun. Dengan menggunakan kaedah di atas, kebenaran pengguna boleh ditanya dengan mudah dan pangkalan data boleh diurus dan dioptimumkan dengan lebih baik.
Atas ialah kandungan terperinci kebenaran pengguna pertanyaan oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!