Za pomocą psql
meta-poleceń:
https://www.postgresql.org/docs/current/static/app-psql.html
Przejście po stronie za pomocą Ctrl + F daje:
\ddp [ pattern ]
Wyświetla domyślne ustawienia uprawnień dostępu.
\dp [ pattern ]
Wyświetla tabele, widoki i sekwencje wraz z powiązanymi z nimi uprawnieniami dostępu.
\l[+] [ pattern ]
Wyświetl bazy danych na serwerze i pokaż .... uprawnienia dostępu.
Wspomniano także powyżej, ale nie znaleziono ze słowem „uprawnienia” na stronie podręcznika:
\du+
dla ról z logowaniem i \dg+
dla ról bez - będzie pole, w "Member of"
którym znajdziesz role przypisane do ról.
Celowo pomijam tutaj przywileje funkcji i języka, które w psql
podręczniku są ledwo zmanipulowane (a jeśli skorzystasz z tych przywilejów, nie przyjedziesz tu po poradę). to samo dla typów zdefiniowanych przez użytkownika, domen itd. - użycie „+” po meta-poleceniu pokaże uprawnienia, jeśli dotyczy.
Trochę ekstremalnym sposobem sprawdzenia uprawnień jest upuszczenie użytkownika w transakcji, np .:
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
Gdy lista jest dłuższa niż N (przynajmniej w 9.3), ostrzeżenie z listą uprawnień jest zwinięte, ale nadal możesz znaleźć ją w logach ...
\z myTable
jest idealny dla zapewnienia, że udało Ci przyznany dostęp do kogoś i unikanie patrząc jak idiota kiedy mówisz „dobrze to działa teraz? nie ??? ”