English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de PostgreSQL

Tutorial avanzado de PostgreSQL

Interfaz de PostgreSQL

Privilegios de PostgreSQL

Cada vez que se crea un objeto de base de datos, se le asigna un propietario, que generalmente es la persona que ejecuta la sentencia CREATE.

Para la mayoría de los tipos de objetos, el estado inicial es que solo el propietario (o el superusuario) puede modificar o eliminar el objeto. Para permitir que otros roles o usuarios lo utilicen, debe establecer permisos para ese usuario.

En PostgreSQL, los permisos se dividen en los siguientes tipos:

  • SELECCIONAR

  • INSERTAR

  • ACTUALIZAR

  • ELIMINAR

  • TRUNCAR

  • REFERENCIAS

  • TRIGGER

  • CREAR

  • CONECTAR

  • TEMPORAL

  • EJECUTAR

  • USO

Según el tipo del objeto (tabla, función, etc.), se aplica la permiso especificado a ese objeto.

Para asignar permisos a un usuario, se puede usar el comando GRANT.

Sintaxis de GRANT

La sintaxis básica del comando GRANT es la siguiente:

GRANT privilege [, ...]
ON object [, ...]
TO { PUBLIC | GROUP group | username }
  • privilege − los valores pueden ser: SELECT, INSERT, UPDATE, DELETE, RULE, ALL.

  • object − nombre del objeto al que se otorgará acceso. Los objetos posibles incluyen: table, view, sequence.

  • PUBLIC − representa a todos los usuarios.

  • GROUP group − otorgar permisos a un grupo de usuarios.

  • username − nombre de usuario al que se le otorgan los permisos. PUBLIC es una forma abreviada que representa a todos los usuarios.

Además, podemos usar el comando REVOKE para revocar permisos, sintaxis de REVOKE:

REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }

Ejemplo en línea

Para entender los permisos, crea un usuario:

w3codeboxdb=# CREATE USER w3codebox WITH PASSWORD 'password';
CREATE ROLE

Información CREATE ROLE indica que se ha creado un usuario "w3codebox"。

Ejemplo en línea

Crear la tabla COMPANY (Descargar archivo SQL de COMPANY ),los datos son los siguientes:

w3codeboxdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

Ahora damos permisos al usuario "w3Los permisos asignados a "codebox":

w3codeboxdb=# GRANT ALL ON COMPANY TO w3codebox;
GRANT

Información GRANT indica que todos los permisos se han asignado a "w3codebox"。

A continuación, se revoca el permiso del usuario "w3Los permisos de "codebox":

w3codeboxdb=# REVOKE ALL ON COMPANY FROM w3codebox;
REVOKE

Información REVOKE indica que se han revocado los permisos del usuario.

También puedes eliminar al usuario:

w3codeboxdb=# DROP USER w3codebox;
DROP ROLE

Información DROP ROLE indica que el usuario "w3codebox" ya ha sido eliminado de la base de datos.