Como verificar os privilégios do Postgres para o usuário?

Como verificar os privilégios do Postgres para o usuário?
No SQL, um privilégio refere-se a permissão específica ou à ação direita para desempenho nos bancos de dados no servidor. Por exemplo, no PostgreSQL, os privilégios podem incluir o privilégio de fazer login no servidor para executar várias ações.

Este tutorial rápido mostrará como obter informações privilegiadas sobre um usuário disponível no servidor.

Tipos de privilégios

Antes de continuarmos a consultar o PostgreSQL para obter informações sobre os usuários, vamos destacar as várias permissões e o que eles permitem que o usuário os atribuiu a fazer.

Os tipos de privilégios nos DBMs PostgreSQL são:

  • Selecione - O privilégio selecionado permite que um usuário selecione valores de quaisquer colunas de qualquer objeto semelhante a uma tabela. Objetos semelhantes à mesa no PostgreSQL incluem uma tabela, uma visualização, vista materializada, etc.
  • INSERIR - A permissão de inserção permite ao usuário inserir novas linhas em uma tabela. Você também pode conceder o privilégio de inserção em uma coluna específica, permitindo que as linhas inseram apenas as colunas definidas.
  • ATUALIZAR - Este tipo de privilégio permite que o usuário do conjunto atualize linhas em qualquer coluna em uma tabela ou visualização. Semelhante à permissão de inserção, você pode configurá -la em uma coluna específica para permitir que o usuário atualize as linhas de uma (s) coluna (s) específica (s).
  • EXCLUIR - Isso permitirá que um usuário solte/exclua uma linha de qualquer objeto de tabela modificável. Isso requer que o usuário tenha a permissão de seleção, pois precisa fazer referência a colunas da tabela para verificar se as linhas são descartadas.
  • CONECTAR - A permissão de conexão permite que um usuário se conecte ao servidor. Este tipo de permissão é verificado na inicialização da conexão pelo PG_HBA.arquivo conf.
  • CRIAR - O privilégio Criar permite que um usuário crie um novo esquema, uma tabela em um banco de dados definido. Também pode permitir que um usuário instale extensões em um banco de dados. Se essa permissão for revogada em um usuário, ela não remove todos os objetos existentes até o ponto de terminação.
  • TRUNCAR - Como o nome sugere, concede a permissão do usuário para truncar uma tabela.
  • ACIONAR - Isso permite que um usuário crie um gatilho em objetos semelhantes à tabela.
  • TEMPORÁRIO - Permite que os usuários criem uma tabela temporária enquanto conectados a um banco de dados definido.
  • EXECUTAR - Executar a permissão permite que um usuário ligue para funções ou procedimentos. Este é o único tipo de permissão que pode se aplicar a funções/procedimentos.
  • REFERÊNCIAS - Permite que um usuário crie restrições de chave estrangeira que referenciam uma tabela ou colunas.

Como mostrar privilégios de usuário

Listar privilégios de usuário é simples. No PSQL, use a consulta \ du+ como mostrado na saída abaixo:

$ postgres =# \ du+

A saída acima mostra os usuários do PostGres e Temp com suas permissões correspondentes.

Outra maneira de fazer isso é usar o esquema Information_schema e consultar a tabela Table_privileges como:

$ SELECT * de Information_schema.tabela_privileges limite 5;

A consulta acima mostrará informações detalhadas sobre privilégios de usuário em bancos de dados e tabelas.

Para filtrar para um usuário específico, você pode adicionar a cláusula onde:

$ SELECT * de Information_schema.tabela_privileges onde o donatário = 'PostGres' Limit 5;

Conclusão

Este breve tutorial discutiu maneiras de buscar informações privilegiadas sobre os usuários em um servidor PostgreSQL.