Introdução ao PostgreSQL Lista de Usuários
Em qualquer banco de dados, precisamos criar e ter vários usuários que podem acessar o banco de dados. Cada usuário deve ter certos privilégios de acesso e deve ser autorizado, o usuário. Por padrão, no servidor de banco de dados PostgreSQL tem um usuário padrão chamado Postgres. Este é o super-usuário que tem todos os direitos e privilégios concedidos para todas as bases de dados e tabelas. Ele pode criar novos usuários e atribuir papéis a eles, conceder e revogar permissões para outros usuários e assim por diante. Muitas vezes, o superusor ou o administrador de banco de dados precisa saber sobre todos os usuários presentes no servidor de banco de dados atual. Neste artigo, vamos aprender como podemos listar todos os usuários que estão presentes em nosso servidor de banco de dados atual. Comecemos por estudar onde os dados relacionados com o Utilizador são armazenados e manipulados na base de dados.
utilizadores da lista PostgreSQL
abaixo estão os três utilizadores diferentes da lista:
iniciar o seu curso gratuito de Ciência dos dados
Hadoop, Ciência dos dados, estatísticas & outros
1. Dados do usuário no PostgreSQL
todos os dados relacionados ao usuário são armazenados na tabela chamada pg_user, que pertence ao esquema chamado pg_catalog. Esta tabela consiste em todas as informações como username, usesysid, usecriedb, usesuper, userepl, usebypassrls, passwd, valuntil e useconfig. Username, usesysid, e passwd são o nome, id e senha armazenados no sistema de criptografia md5 hash do Usuário. Simultaneamente, todos os outros parâmetros são os parâmetros booleanos que especificam se o usuário tem esse privilégio, como o usesuper, que especifica se esse usuário é um superusuário ou não. Se sim, então ele contém valor como t que significa true else F que significa falso. Vejamos o que significam na prática todos os outros campos recuperados.
- Usecriatedb: este campo nos diz se esse usuário em particular pode criar um novo banco de dados e tem o privilégio de fazê-lo.
- Userepl: podemos criar replicações de uma única tabela em muitas outras bases de dados. Somente um usuário específico que tenha esse privilégio pode fazê-lo. Assim, se o usuário tem o privilégio de criar novas réplicas, este campo é definido como verdadeiro.
- Usebypassrls: Este campo é definido como verdadeiro apenas se o usuário for autorizado a contornar o RLS
veremos primeiro como podemos recuperar a informação relacionada ao usuário a partir da tabela pg_user. Teremos de construir a nossa consulta da seguinte forma –
Código:
SELECT * FROM pg_catalog.pg_user;
resultado:
se você só quiser obter a lista de usuários contendo seus nomes, você pode disparar a seguinte consulta.
Código:
SELECT usename FROM pg_catalog.pg_user;
Saída:
2. Usando MetaCommands
PostgreSQL nos fornece um utilitário maravilhoso chamado psql, onde podemos usar metaCommands. MetaCommands são os utilitários pré-fabricados que estão disponíveis para usar, tornando o trabalho do administrador de banco de dados muito fácil. Para obter os dados relacionados com o utilizador \, du é o meta-comando que pode ser usado. Para isso, você precisará usar a linha de comandos psql no PostgreSQL. Deixe-nos do fogo este comando e ver que é o resultado que estamos obtendo:
Código:
\du
Saída:
- Aqui, o Nome da Função é o nome do usuário. = = Ligações externas = = atributos que são os papéis que um determinado usuário tem para si mesmo. Superusuário, criar papel, Criar DB, replicação, bypass RLS são regras atribuídas ao superusuário que significa que o superusuário pode criar os novos papéis e usuários, criar novos bancos de dados, realizar replicações dos objetos existentes e contornar o RLS.
- “membro de” campo especifica se o Usuário é um membro de qualquer grupo. No PostgreSQL, o administrador de banco de dados pode criar vários grupos e adicionar diferentes usuários a diferentes grupos, o que o ajuda a gerenciar os usuários corretamente, enquanto grade e revogando as permissões. Se existem tais grupos e esse usuário em particular pertence a qualquer grupo em particular, então o nome desse grupo é mostrado na frente desse usuário no campo membro da coluna.
- este metaCommands dispara internamente uma consulta na tabela pg_catalog.pg_user para obter a informação do utilizador. Aqui, nós obtemos o nome do papel como o nome do Usuário, e uma lista de atributos de funções nos ajudam a saber quais privilégios são concedidos a esse usuário em particular, enquanto um membro do campo nos diz se o Usuário é um membro de qualquer grupo em particular, se presente. A consulta que é disparada internamente depois de usar o \ du metacommand é um pouco semelhante à instrução de consulta abaixo:
Código:
SELECT u.usename AS "Role name",
CASE WHEN u.usesuper AND u.usecreatedb THEN CAST('Create DB, Superuser' AS pg_catalog.text)
WHEN u.usesuper THEN CAST('Superuser' AS pg_catalog.text) WHEN u.usecreatedb THEN CAST('Create DB' AS pg_catalog.text)
ELSE CAST('' AS pg_catalog.text) END AS "Attributes"
FROM pg_catalog.pg_user u ORDER BY 1;
3. Usando pg_shadow
mais uma maneira de obter a lista dos usuários é usando a tabela pg_shadow que também contém informações sobre os usuários no servidor PostgreSQL. Esta tabela é mantida para compatibilidade reversa para as versões do PostgreSQL que são anteriores a 8.1. Esta tabela armazena os papéis que podem fazer login e flag rolcanlogin como 1 na tabela PG_ authid. Pg_user é a vista criada na tabela de base pg_shadow, que está disponível publicamente. pg_shadow só é acessível pelo superusuário. a vista pg_user contém o campo de senha como em branco para manter a segurança. A tabela de sombras PG_ contém os campos username, usesysid, usecreatedb, usesuper, userepl, usebypassrls, passwd, valuntil e useconfig para todos os usuários do servidor de banco de dados.
Código:
SELECT * FROM pg_shadow;
Saída:
select usesysid as "Id of User", usename as "User Name",
usesuper as "Whether User Is SuperUser", passwd as "Md5 Encrypted Password", valuntil as "Expiry of Password"
from pg_shadow order by usename;
Saída:
Conclusão
No servidor de banco de dados PostgreSQL, podemos recuperar as informações do usuário quer recuperar os registros da tabela pg_user que pertence a pg_catalog esquema. Mais uma maneira é usar o meta-comando \du, que dispara internamente a consulta na própria tabela pg_user. Além disso, há mais uma tabela chamada pg_shadow, que armazena informações sobre os usuários e pode ser mais usado para listar todos os usuários no servidor de banco de dados PostgreSQL. Note que o escopo de todos estes métodos é todo o servidor de banco de dados.
artigos recomendados
este é um guia para os utilizadores da lista PostgreSQL. Aqui discutimos os dados do Usuário, metaCommand do Usuário, e pg_shadow do usuário com exemplos para implementar. Você também pode ir através de nossos outros artigos relacionados com para saber mais–
- o PostgreSQL FETCH
- Chave Estrangeira no PostgreSQL
- PostgreSQL Tabela
- PostgreSQL Consultas | Introdução | Exemplos
- PostgreSQL REGEXP_MATCHES()
- Guia para o SQL REGEXP