Jestem w trakcie migracji serwera bazy danych i nie mogę zrozumieć (po przejrzeniu i przejrzeniu tutaj), jak mogę wyświetlić listę uprawnień do bazy danych (lub wszystkich uprawnień na serwerze) na PostgreSQL za pomocą psql
narzędzia wiersza poleceń?
Używam Ubuntu 11.04, a moja wersja PostgreSQL to 8.2.x.
postgresql
ubuntu
permissions
psql
pedrosanta
źródło
źródło
\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 ??? ”może masz na myśli listę użytkowników i ich uprawnienia do bazy danych - nie mogę do końca powiedzieć na podstawie pytania:
źródło
Możesz to zrobić, wykonując następujące czynności:
Daje to taki efekt:
źródło
Za pomocą
psql
meta-poleceń:https://www.postgresql.org/docs/current/static/app-psql.html
Przejście po stronie za pomocą Ctrl + F daje:
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 .:
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 ...
źródło
Undercovers psql używa poniższego zapytania podczas wydawania
\du
polecenia.źródło
(Być może oczywistym) dodatkowym krokiem staje się użytkownik postgres, w przeciwnym razie mogą pojawić się błędy związane z nieistniejącymi rolami.
lub
źródło
wynik
źródło