ver usuarios usuario privilegios postgres mostrar entrar eliminar desde crear consola como comandos database postgresql chmod chown

database - privilegios - usuarios y roles en postgresql



Intento obtener la configuraciĆ³n de Postgres en mi entorno pero parece que no puede obtener permisos para intidb (4)

Estoy siguiendo el reciente RailsCast al configurar PostgreSQL, pero no puedo ejecutar el initdb /usr/local/var/postgres . Cada vez que lo ejecuto, me sale este error:

The files belonging to this database system will be owned by user "Construct". This user must also own the server process. The database cluster will be initialized with locale en_US.UTF-8. The default database encoding has accordingly been set to UTF8. The default text search configuration will be set to "english". creating directory /usr/local/var/postgres ... initdb: could not create directory "/usr/local/var": Permission denied


¿Qué usuario está ejecutando initdb como? Si no es root, es probable que no tenga permiso para crear directorios en / usr / local. Sugiero crear / usr / local / var / postgres como root, y pedirle que lo construya:

# mkdir -m 0700 -p /usr/local/var/postgres # chown construct /usr/local/var/postgres

Entonces su initdb (ejecutar como construcción) debe tener permiso.

Además, tenga en cuenta que los nombres de usuario de Unix son normalmente en minúsculas (pero también distinguen entre mayúsculas y minúsculas); ¿Está seguro de que su usuario de Construct está en mayúsculas? Si es así, ¿está realmente seguro de que quiere que se capitalice? Muchas cosas se romperán.

(Para su información: Para preguntas de Unix como esta, puede encontrar que Unix.SE o Ask Ubuntu proporcionan respuestas más rápidas)


Esto debería funcionar bien:

# sudo mkdir /usr/local/var/postgres # sudo chmod 775 /usr/local/var/postgres # sudo chown construct /usr/local/var/postgres # initdb /usr/local/var/postgres

Usa tu nombre de usuario en lugar de construir. Entonces, si su nombre de usuario de computadora es WDurant, el código será:

# sudo chown wdurant /usr/local/var/postgres


Si ejecuta en arch linux , use así:

sudo mkdir /var/lib/postgres sudo chmod 775 /var/lib/postgres sudo chown postgres /var/lib/postgres sudo -i -u postgres [postgres]$ initdb --locale $LANG -E UTF8 -D ''/var/lib/postgres/data'' [postgres]$ exit sudo systemctl start postgresql.service sudo -i -u postgres


Usted realmente necesita SU para el usuario postgres

  • sudo su - postgres

entonces puedes ejecutar el comando

  • initdb -E UTF8 (prefiero configurar esto ahora porque UTF8 es bastante flexible y esto creará todos los clústeres como UTF8 [a menos que especifique lo contrario explícitamente])

entonces necesitas crear tu usuario (si aún no ha sido creado)

  • $ createuser -s -U postgres
  • $ Enter name of role to add: {{ my login name }} (esto parece ser Construct )

luego puede salir del usuario de Postgres y puede crear su propia base de datos

  • $ createdb