PostgreSQL Privilégios de concessão

PostgreSQL Privilégios de concessão

No PostgreSQL, um usuário deve ter o Privilégio de login Para fazer login no banco de dados. No entanto, as permissões explícitas devem ser atribuídas para executar operações de banco de dados, incluindo a seleção de tabelas, colunas e registros.

O PostgreSQL Grant A consulta permite modificar privilégios para usuários em objetos de banco de dados, como tabelas, colunas, visualizações, funções, esquemas e muito mais.

Este tutorial irá orientá -lo usando o PostgreSQL Grant comando para modificar privilégios para vários objetos de banco de dados.

Uso básico

A sintaxe básica para o comando de concessão é:

Conceder privilégios (s) em objeto (s) ao usuário

Na sintaxe acima, você pode especificar um ou mais privilégios para conceder no objeto especificado para o usuário.

Para definir todos os privilégios em um objeto, você pode usar a palavra -chave.

Alguns dos privilégios que você pode especificar para conceder em um objeto incluem:

  1. Selecione
  2. INSERIR
  3. ATUALIZAR
  4. EXCLUIR
  5. CRIAR
  6. CONECTAR
  7. ACIONAR
  8. TRUNCAR
  9. REFERÊNCIAS
  10. EXECUTAR

Em seguida, você especifica o objeto de banco de dados e o usuário que concede os privilégios definidos.

Exemplos de declaração de concessão

Vejamos alguns exemplos de como usar o Consulta de concessão no Banco de dados PostgreSQL.

Primeiro, crie um usuário local sem privilégios. Para fazer isso, verifique se você efetua login como usuário administrador.

PSQL -U PostGres
Crie mods de função de login senha 'hello';

Na próxima etapa, crie um banco de dados e uma tabela que usaremos para ilustrar os privilégios do PostGresql.

Uma consulta de amostra está abaixo:

Soltar o banco de dados se existir privs;
Criar banco de dados Privs;
\ c privs;
Criar Tabela Modify (serial da ID, nome de usuário Varchar (255) não nulo, email Varchar (255) não nulo, quantidade int, chave primária (ID));

Por fim, saia do usuário do Postgres e faça login como o usuário que acabamos de criar acima. No exemplo acima, use o comando:

PSQL -U Mods -d Privs;

Exemplo 1

Se você tentar selecionar valores na tabela Modify do banco de dados Privs, você receberá uma permissão negado erro.

Por exemplo:

privs => selecione * do modify;
Erro: permissão negada para modificar a tabela

Você pode resolver este erro concedendo todas as permissões ao usuário do MODS ou adicionando privilégios selecionados.

Para fazer isso, efetue login como usuário do Postgres.

PSQL -U PostGres -d Privs;
Grant Selecione em modificar para mods;

Isso permite que os usuários dos mods selecionem itens na tabela Modify do banco de dados Privs.

Depois de executar a instrução SELECT, você deve obter resultados como:

privs =# selecione * do modify;
id | nome de usuário | Email | quantia
----+----------+-------+--------
(0 linhas)

Exemplo 2

Você também pode atribuir vários privilégios de uma só vez. Por exemplo, para especificar Selecione, inserir, excluir e truncar privilégios, use o comando.

Grant Select, inserir, excluir, truncar em modificar para mods;

Exemplo 3

Para conceder todas as permissões a um usuário, defina os privilégios para todos, conforme mostrado no comando de exemplo abaixo:

Conceda a todos no Modify aos mods;

Exemplo 4

Em todos os exemplos acima, atribuímos apenas privilégios a um usuário em uma tabela específica. Para conceder os privilégios a todas as tabelas de um esquema especificado, podemos usar o comando:

Grant Select, inserir, excluir, truncar em todas as tabelas no esquema "privs" em mods;

Exemplo 5

Você também pode CONCEDER um privilégio de conexão a um usuário específico para um banco de dados específico. A consulta é:

Grant Connect no banco de dados Privs aos mods;

Para revogar todas as permissões concedidas a um usuário, use a consulta de revogar como:

Revogar selecionar, inserir, excluir, truncar no modificar dos mods;

Fechamento

Como este guia mostrou a você, PostGresql permite modificar privilégios para um usuário em objetos de banco de dados usando o Conceder e revogar comandos.