Notas sobre PostgreSQL

Para hacer login al servidor PostgreSQL se ejecutan dos comandos:

  • $ sudo su - postgres es útil para loguearse como el usuario postgres
  • Después de eso con el comando psql podemos hacer login al prompt de PostgreSQL (el servidor)

psql -U user -d database -h 127.0.0.1 -W.

Roles

PostgreSQL administra los permisos bajo el concepto de “roles”.

Crear roles (dentro del servidor PostgreSQL): # create role developer;. Un método alternativo para crear roles es usar el comando createuser en el prompt PostgreSQL.

Listar los roles \du. Eliminar roles se hace de la siguiente forma: # drop role developer;.

Privilegios

Los roles tienen privilegios. Por ejemplo, cuando un rol no tiene permiso para loguearse se lo podemos otorgar así: alter role developer with login o así alter user developer CREATEDB.

De la misma forma otorgamos todos los permisos a un rol así: GRANT ALL PRIVILEGES ON DATABASE database to usuario;

Obtener permisos de administrador

Para acceder directamente desde el prompt de tu usuario, hay que crear un rol y una base de datos que tengan el mismo nombre de tal usuario.

Suponiendo que el nombre de tu usuario es hariseldon, Hacemos lo siguiente: desde el prompt del usuario postgres creamos un rol createuser hariseldon. Aparecerá un prompt para que indiquemos que queremos que este nuevo rol tenga privilegios de administrador. Después basta crear una base de datos con el nombre hariseldon: create database hariseldon.

Resetear contraseña

alter user postgres with password ''

Mostrar tablas en la base de datos

\dt

\d+ table es el equivalente a describe table de MySQL.

El equivalente a use database de MySQL es \c database.

Respaldar y restaurar

Otra de las funciones que nos conviene saber es cómo respaldar y restaurar bases de datos.

Respaldar: pg_dump -U usuario nombredb -h localhost -f respaldodb.sql.

Antes de restaurar hay que asegurarse de que la base de datos ha sido creada: $ psql -U usuario -d database -f script.sql.

Otros tips

Darle la propiedad de una base de datos a determinado rol:

ALTER DATABASE name OWNER TO developer;

Heredar los privilegios de otro rol:

GRANT admin TO joe;

Ejecutar instrucciones SQL desde un archivo:

psql -d myDataBase -a -f myInsertFile

Algunas consultas útiles

  • select datname from pg_database: Esta consulta nos da una lista de las bases de datos que existen, me gusta más que la salida de \l.
  • select * from pg_stat_activity: Esta consulta nos da una lista de las bases de datos con una sesión abierta.

Total de filas en cada tabla de la base de datos a la que estás logueado:

SELECT schemaname,relname,n_live_tup
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;

4 comentarios sobre “Notas sobre PostgreSQL

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s