O catálogo pg_authid contém
informações sobre funções de banco de dados
(roles).
Uma função de banco de dados engloba os conceitos de
“usuários” e “grupos”.
Um usuário é essencialmente apenas uma função de banco de dados com
o sinalizador rolcanlogin definido.
Qualquer função de banco de dados (com ou sem
rolcanlogin) pode ter outras funções de
banco de dados (roles) como membros;
veja pg_auth_members.
Como este catálogo contém senhas, ele não deve ser legível publicamente. pg_roles é uma visão publicamente legível sobre pg_authid que deixa o campo de senha em branco.
Funções de banco de dados (roles) contém informações detalhadas sobre gerenciamento de usuários e privilégios.
Como as identidades dos usuários abrangem toda a instância, pg_authid é compartilhado por todos os bancos de dados da instância: há apenas uma cópia de pg_authid por instância, e não uma por banco de dados.
Tabela 52.8. Colunas de pg_authid
Coluna Tipo de dados Descrição |
|---|
Identificador da linha |
Nome da função de banco de dados (identificador de autorização/role) |
A função de banco de dados tem privilégios de superusuário |
A função de banco de dados herda automaticamente os privilégios das funções de banco de dados das quais é membro |
A função de banco de dados pode criar mais funções de banco de dados |
A função de banco de dados pode criar bancos de dados |
A função de banco de dados pode se conectar. Ou seja, esta função de banco de dados pode ser fornecida como o identificador de autorização da sessão inicial. |
A função de banco de dados é uma função de banco de dados de replicação. Uma função de banco de dados de replicação pode iniciar conexões de replicação e criar e excluir encaixes de replicação. |
A função de banco de dados ignora todas as políticas de segurança no nível de linha. Veja Políticas de segurança de linha para obter mais informações. |
Para funções de banco de dados que podem se conectar, define o número máximo de conexões simultâneas que esta função de banco de dados pode fazer. -1 significa sem limite. |
Senha encriptada; nulo se nenhuma. O formato depende da forma de encriptação usada. |
Data de expiração da senha (usado apenas para autenticação por senha); nulo se não houver expiração. |
Para uma senha encriptada por MD5, a coluna
rolpassword começará com a cadeia de
caracteres md5 seguida por um
hash MD5 hexadecimal de
32 caracteres.
O hash MD5 será a senha
do usuário concatenada ao seu nome de usuário.
Por exemplo, se o usuário joe tiver a senha
xyzzy, o PostgreSQL
armazenará o hash md5
como xyzzyjoe.
O suporte para senhas encriptadas por MD5 está obsoleto e será removido em uma versão futura do PostgreSQL. Veja Autenticação por senha para obter detalhes sobre a migração para outro tipo de senha.
Se a senha estiver encriptada com SCRAM-SHA-256, ela terá o seguinte formato:
SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>
onde salt, StoredKey e
ServerKey estão no formato codificado em Base64.
Este formato é o mesmo especificado pelo
RFC 5803.
Exemplo 52.4. Exemplo do tradutor
Funções de banco de dados predefinidas
Uso do catálogo pg_authid
para mostrar as Funções de banco de dados predefinidas, e o meta comando
\dgS pg_* do psql
com este mesmo objetivo.
postgres=# SELECT rolname postgres-# FROM pg_authid postgres-# WHERE rolname LIKE 'pg\_%' postgres-# ORDER BY rolname;
rolname
-----------------------------
pg_checkpoint
pg_create_subscription
pg_database_owner
pg_execute_server_program
pg_maintain
pg_monitor
pg_read_all_data
pg_read_all_settings
pg_read_all_stats
pg_read_server_files
pg_signal_autovacuum_worker
pg_signal_backend
pg_stat_scan_tables
pg_use_reserved_connections
pg_write_all_data
pg_write_server_files
(16 linhas)
postgres=# \dgS pg_*
Lista de funções de banco de dados (roles)
Nome da função de banco de dados (role) | Atributos
-----------------------------------------+-------------------------
pg_checkpoint | Não é possível conectar
pg_create_subscription | Não é possível conectar
pg_database_owner | Não é possível conectar
pg_execute_server_program | Não é possível conectar
pg_maintain | Não é possível conectar
pg_monitor | Não é possível conectar
pg_read_all_data | Não é possível conectar
pg_read_all_settings | Não é possível conectar
pg_read_all_stats | Não é possível conectar
pg_read_server_files | Não é possível conectar
pg_signal_autovacuum_worker | Não é possível conectar
pg_signal_backend | Não é possível conectar
pg_stat_scan_tables | Não é possível conectar
pg_use_reserved_connections | Não é possível conectar
pg_write_all_data | Não é possível conectar
pg_write_server_files | Não é possível conectar