52.8. pg_authid #

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

oid oid

Identificador da linha

rolname name

Nome da função de banco de dados (identificador de autorização/role)

rolsuper bool

A função de banco de dados tem privilégios de superusuário

rolinherit bool

A função de banco de dados herda automaticamente os privilégios das funções de banco de dados das quais é membro

rolcreaterole bool

A função de banco de dados pode criar mais funções de banco de dados

rolcreatedb bool

A função de banco de dados pode criar bancos de dados

rolcanlogin bool

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.

rolreplication bool

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.

rolbypassrls bool

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.

rolconnlimit int4

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.

rolpassword text

Senha encriptada; nulo se nenhuma. O formato depende da forma de encriptação usada.

rolvaliduntil timestamptz

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.

Atenção

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


52.8.1. Veja também #

CREATE ROLE, SET ROLE, ALTER ROLE, DROP ROLE, GRANT, REVOKE, administrable_role_authorizations, applicable_roles, enabled_roles, createuser, createrole_self_grant, pg_roles