21.5. Funções de banco de dados predefinidas #

O PostgreSQL fornece um conjunto de funções de banco de dados (roles) predefinidas que fornecem acesso a certas funcionalidades e informações privilegiadas comumente necessárias. Os administradores (incluindo funções de banco de dados com o privilégio CREATEROLE) podem conceder (GRANT) estas funções para usuários e/ou outras funções de banco de dados em seu ambiente, fornecendo a estes usuários acesso aos recursos e informações especificados. Por exemplo:

GRANT pg_signal_backend TO admin_user;

Atenção

Deve-se ter cuidado ao conceder estas funções de banco de dados, garantindo que sejam usadas apenas quando necessário e com a compreensão de que elas concedem acesso a informações privilegiadas.

As funções de banco de dados predefinidas são descritas abaixo. Note-se que as permissões específicas para cada uma das funções de banco de dados predefinidas poderão mudar no futuro, à medida que forem adicionados recursos adicionais. Os administradores devem monitorar as notas de versão em busca de alterações.

pg_checkpoint #

pg_checkpoint permite executar o comando CHECKPOINT.

pg_create_subscription #

pg_create_subscription permite que usuários com a permissão CREATE no banco de dados executem CREATE SUBSCRIPTION.

pg_database_owner #

pg_database_owner sempre tem exatamente um membro implícito: o dono atual do banco de dados. Este privilégio não pode ser concedido. Entretanto, assim como qualquer outra função de banco de dados, ela pode ser dona de objetos e possuir privilégios de acesso. Consequentemente, uma vez que pg_database_owner tenha direitos em um banco de dados modelo, o dono de qualquer banco de dados criado a partir desse modelo também possuirá estes direitos. Inicialmente esta função de banco de dados possui o esquema public, de modo que cada dono de banco de dados controla o uso local desse esquema.

pg_maintain #

pg_maintain permite executar VACUUM, ANALYZE, CLUSTER, REFRESH MATERIALIZED VIEW, REINDEX e LOCK em todas as relações, como se tivesse privilégios MAINTAIN sobre estes objetos.

pg_monitor
pg_read_all_settings
pg_read_all_stats
pg_stat_scan_tables #

Estas funções de banco de dados destinam-se a permitir que os administradores configurem facilmente uma função de banco de dados que vise monitorar o servidor de banco de dados. Elas concedem um conjunto de privilégios comuns que permitem à função de banco de dados ler diversas configurações úteis, estatísticas e outras informações do sistema normalmente restritas a superusuários.

pg_monitor permite ler/executar diversas visões e funções de monitoramento. Esta função de banco de dados é membro de pg_read_all_settings, pg_read_all_stats e pg_stat_scan_tables.

pg_read_all_settings permite ler todas as variáveis ​​de configuração, inclusive aquelas normalmente acessíveis apenas para superusuários.

pg_read_all_stats permite ler todas as visões pg_stat_* e usar várias extensões relacionadas a estatísticas, inclusive aquelas normalmente acessíveis apenas para superusuários.

pg_stat_scan_tables permite executar funções de monitoramento que podem adquirir bloqueios ACCESS SHARE em tabelas, potencialmente por um longo período (por exemplo, pgrowlocks(text) na extensão pgrowlocks).

pg_read_all_data
pg_write_all_data #

pg_read_all_data permite ler todos os dados (tabelas, visões, sequências) como se possuísse privilégios de SELECT sobre estes objetos e privilégios de USAGE sobre todos os esquemas. Esta função de banco de dados não ignora as políticas de segurança no nível de linha (RLS). Se estiver sendo usada segurança no nível de linha, um administrador poderá definir BYPASSRLS nas funções de banco de dados (roles) às quais esta função de banco de dados é concedida.

pg_write_all_data permite escrever todos os dados (tabelas, visões, sequências), como se tivesse privilégios de INSERT, UPDATE e DELETE sobre estes objetos e privilégios de USAGE sobre todos os esquemas. Esta função de banco de dados não ignora as políticas de segurança no nível de linha (RLS). Se estiver sendo usada segurança no nível de linha , um administrador poderá definir definir BYPASSRLS nas funções de banco de dados (roles) às quais esta função de banco de dados é concedida.

pg_read_server_files
pg_write_server_files
pg_execute_server_program #

Estas funções de banco de dados destinam-se a permitir que os administradores tenham funções de banco de dados confiáveis — porém sem privilégios de superusuário — capazes de acessar arquivos e executar programas no servidor de banco de dados com o mesmo usuário sob o qual o banco de dados é executado. Elas ignoram todas as verificações de permissão no nível de banco de dados ao acessar arquivos diretamente e poderiam ser usadas ​​para obter acesso no nível de superusuário. Portanto, deve-se ter muito cuidado ao conceder estas funções de banco de dados aos usuários.

pg_read_server_files permite ler arquivos em qualquer local que o banco de dados possa acessar no servidor, usando COPY e outras funções de acesso a arquivos.

pg_write_server_files permite escrever em arquivos em qualquer local que o banco de dados possa acessar no servidor, usando COPY e outras funções de acesso a arquivos.

pg_execute_server_program permite executar programas no servidor de banco de dados com o mesmo usuário sob o qual o banco de dados é executado, usando o comando COPY e outras funções que permitem a execução de programa no lado servidor.

pg_signal_autovacuum_worker #

pg_signal_autovacuum_worker permite enviar sinal aos processos trabalhadores autovacuum para cancelar a limpeza da tabela corrente ou encerrar a sessão correspondente. Veja Funções de sinalização do servidor.

pg_signal_backend #

pg_signal_backend permite enviar sinal a outro processo servidor em segundo plano (backend) para cancelar uma consulta ou encerrar sua sessão. Note-se que esta função não permite enviar sinais a processos servidores em segundo plano pertencentes a um superusuário. Veja Funções de sinalização do servidor.

pg_use_reserved_connections #

pg_use_reserved_connections permite usar encaixes de conexão reservados via reserved_connections.