Rumah pangkalan data Oracle kebenaran pengguna pertanyaan oracle

kebenaran pengguna pertanyaan oracle

May 07, 2023 pm 10:48 PM

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';
Salin selepas log masuk

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';
Salin selepas log masuk

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;
Salin selepas log masuk

Untuk menanya kebenaran pengguna semasa pada jadual, anda boleh menggunakan pernyataan berikut:

SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = 'table_name';
Salin selepas log masuk

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');
Salin selepas log masuk

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;
Salin selepas log masuk

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 Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah saya menggunakan kursor dalam PL/SQL untuk memproses pelbagai baris data? Bagaimanakah saya menggunakan kursor dalam PL/SQL untuk memproses pelbagai baris data? Mar 13, 2025 pm 01:16 PM

Bagaimanakah saya menggunakan kursor dalam PL/SQL untuk memproses pelbagai baris data?

Apakah segmen yang biasa digunakan dalam pangkalan data Oracle Apakah segmen yang biasa digunakan dalam pangkalan data Oracle Mar 04, 2025 pm 06:08 PM

Apakah segmen yang biasa digunakan dalam pangkalan data Oracle

Apakah alat ujian prestasi untuk pangkalan data oracle Apakah alat ujian prestasi untuk pangkalan data oracle Mar 04, 2025 pm 06:11 PM

Apakah alat ujian prestasi untuk pangkalan data oracle

Apakah alat klien pemasangan pangkalan data Oracle? Apakah alat klien pemasangan pangkalan data Oracle? Mar 04, 2025 pm 06:09 PM

Apakah alat klien pemasangan pangkalan data Oracle?

Cara memuat turun pangkalan data oracle Cara memuat turun pangkalan data oracle Mar 04, 2025 pm 06:07 PM

Cara memuat turun pangkalan data oracle

Apakah ruang meja lalai yang disediakan oleh pangkalan data Oracle? Apakah ruang meja lalai yang disediakan oleh pangkalan data Oracle? Mar 04, 2025 pm 06:10 PM

Apakah ruang meja lalai yang disediakan oleh pangkalan data Oracle?

Bagaimana saya membuat pengguna dan peranan dalam oracle? Bagaimana saya membuat pengguna dan peranan dalam oracle? Mar 17, 2025 pm 06:41 PM

Bagaimana saya membuat pengguna dan peranan dalam oracle?

Bagaimanakah saya menggunakan pelekat data oracle dan subsetting untuk melindungi data sensitif? Bagaimanakah saya menggunakan pelekat data oracle dan subsetting untuk melindungi data sensitif? Mar 13, 2025 pm 01:19 PM

Bagaimanakah saya menggunakan pelekat data oracle dan subsetting untuk melindungi data sensitif?

See all articles