Estoy en medio de una migración del servidor de base de datos y no puedo imaginar (después de buscar en Google y buscar aquí) ¿cómo puedo enumerar los privilegios de la base de datos (o todos los privilegios en todo el servidor) en PostgreSQL usando la psql
herramienta de línea de comandos?
Estoy en Ubuntu 11.04 y mi versión de PostgreSQL es 8.2.x.
postgresql
ubuntu
permissions
psql
pedrosanta
fuente
fuente
\z myTable
es perfecto para garantizar que hayas otorgado acceso a alguien con éxito y evitar parecer un idiota cuando dices "¿está bien, funciona ahora? ¿no? "tal vez te refieres a enumerar a los usuarios y sus privilegios para una base de datos. No puedo deducir de la pregunta:
fuente
Puedes hacerlo siguiendo:
Esto le da este tipo de salida:
fuente
Usando
psql
metacomandos:https://www.postgresql.org/docs/current/static/app-psql.html
Revisar la página con Ctrl + F da:
También se menciona anteriormente, pero no se encuentra con la palabra "privilegios" en la página del manual:
\du+
para roles con inicio de sesión y\dg+
para roles sin: tendrá un archivo"Member of"
donde encontrará roles otorgados a roles.Deliberadamente omito los privilegios de función y lenguaje aquí, que se encuentran en el
psql
manual como apenas manipulados (y si usa esos privilegios, no vendrá aquí para recibir un consejo). lo mismo para los tipos definidos por el usuario, dominios, etc., usando "+" después del metacomando le mostrará privilegios si corresponde.Una pequeña forma extrema de verificar los privilegios es dejar caer al usuario en la transacción, por ejemplo:
Cuando la lista es más larga que N, (al menos en 9.3), la advertencia con la lista de privilegios se contrae, pero aún puede encontrarla llena en los registros ...
fuente
Undercovers psql utiliza la siguiente consulta cuando emite el
\du
comando.fuente
Un paso adicional (posiblemente obvio) es convertirse en el usuario de postgres, de lo contrario, puede obtener errores sobre roles que no existen.
o
fuente
salida
fuente