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

Privilégios PostgreSQL

A cada vez que um objeto do banco de dados é criado, um proprietário é atribuído a ele, geralmente a pessoa que executa a sentença create.

Para a maioria dos tipos de objetos, o estado inicial é que apenas o proprietário (ou superusuário) pode modificar ou excluir o objeto. Para permitir que outros papéis ou usuários o usem, é necessário configurar permissões para esses usuários.

No PostgreSQL, as permissões são divididas em várias categorias:

  • SELECIONAR

  • INSERIR

  • ATUALIZAR

  • DELETAR

  • TRUNCAR

  • REFERÊNCIAS

  • TRIGGER

  • CREAR

  • CONECTAR

  • TEMPORÁRIO

  • EXECUTAR

  • USO

De acordo com o tipo do objeto (tabela, função, etc.), aplique as permissões específicas ao objeto.

Para atribuir permissões a usuários, você pode usar o comando GRANT.

Sintaxe do GRANT

A sintaxe básica do comando GRANT é a seguinte:

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

  • object − O nome do objeto a ser concedido acesso. Os objetos possíveis incluem: table, view, sequence.

  • PUBLIC − Representa todos os usuários.

  • GROUP group − Concede permissões para o grupo de usuários.

  • username − nome do usuário a quem serão atribuídas as permissões. PUBLIC é uma forma abreviada para todos os usuários.

Além disso, podemos usar o comando REVOKE para cancelar permissões, sintaxe do REVOKE:

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

Exemplo online

Para entender as permissões, crie um usuário:

w3codeboxdb=# CREATE USER w3codebox COM SENHA 'password';
CREATE ROLE

Informação CREATE ROLE indica que foi criado um usuário "w3codebox".

Exemplo online

Criar tabela COMPANY(Baixar arquivo SQL da tabela COMPANY ),o conteúdo dos dados é o seguinte:

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)

Agora atribuir permissões ao usuário "w3Permissões atribuídas a codebox":

w3codeboxdb=# GRANT ALL ON COMPANY TO w3codebox;
GRANT

Informação GRANT indica que todas as permissões foram atribuídas a "w3codebox".

A seguir, revogar as permissões do usuário "w3Permissões de codebox" revogadas:

w3codeboxdb=# REVOKE ALL ON COMPANY FROM w3codebox;
REVOKE

Informação REVOKE indica que as permissões do usuário foram revogadas.

Você também pode excluir o usuário:

w3codeboxdb=# DROP USER w3codebox;
DROP ROLE

Informação DROP ROLE indica que o usuário "w3codebox" foi removido do banco de dados.