Menggunakan psql
meta-perintah:
https://www.postgresql.org/docs/current/static/app-psql.html
Pergi ke halaman dengan Ctrl + F memberi:
\ddp [ pattern ]
Daftar pengaturan hak akses standar.
\dp [ pattern ]
Daftar tabel, tampilan, dan urutan dengan hak akses terkait mereka.
\l[+] [ pattern ]
Daftar database di server dan tampilkan .... hak akses.
Disebutkan di atas, tetapi tidak ditemukan dengan kata "hak istimewa" pada halaman manual:
\du+
untuk peran dengan login dan \dg+
untuk peran tanpa - akan memiliki arsip di "Member of"
mana Anda menemukan peran yang diberikan kepada peran.
Saya sengaja mengabaikan hak istimewa fungsi dan bahasa di sini, ditemukan dalam psql
manual sebagai hampir tidak dimanipulasi (dan jika Anda memang menggunakan hak istimewa itu, Anda tidak akan datang ke sini untuk meminta saran). sama untuk tipe, domain, dan sebagainya yang ditentukan pengguna - menggunakan "+" setelah meta-command akan menunjukkan kepada Anda hak istimewa jika berlaku.
Sedikit cara ekstrem untuk memeriksa hak istimewa adalah menjatuhkan pengguna dalam transaksi, misalnya:
s=# begin; drop user x;
BEGIN
Time: 0.124 ms
ERROR: role "x" cannot be dropped because some objects depend on it
DETAIL: privileges for type "SO dT"
privileges for sequence so
privileges for schema bin
privileges for table xx
privileges for table "csTest"
privileges for table tmp_x
privileges for table s1
privileges for table test
Time: 0.211 ms
s=# rollback;
ROLLBACK
Time: 0.150 ms
Ketika daftar lebih panjang dari N, (setidaknya dalam 9,3), peringatan dengan daftar hak istimewa diciutkan, tetapi Anda masih dapat menemukannya penuh di log ...
\z myTable
sangat cocok untuk memastikan bahwa Anda telah berhasil memberikan akses ke seseorang dan menghindari terlihat seperti orang bodoh ketika Anda mengatakan "oke apakah itu bekerja sekarang? itu tidak ??? "