Rumah >pangkalan data >Oracle >kebenaran pengguna pertanyaan oracle

kebenaran pengguna pertanyaan oracle

王林
王林asal
2023-05-07 22:48:0714994semak imbas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn