Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Permissões de conta

Última atualização: Jun 26, 2026

O ApsaraDB RDS for PostgreSQL oferece suporte a dois tipos de conta: conta privilegiada e conta padrão. Cada uma possui limites de permissão distintos. Este tópico descreve as capacidades de cada tipo de conta e fornece exemplos de SQL para cada permissão da conta privilegiada.

Importante

As contas de banco de dados em uma instância RDS não podem acessar a tabela pg_authid. Para consultar informações de função, utilize a visualização pg_roles.

Visão geral dos tipos de conta

Tipo de conta

Escopo de permissão

Função

Conta padrão

Equivalente a um usuário PostgreSQL sem privilégios

Função de usuário padrão do PostgreSQL

Conta privilegiada

Inclui todas as permissões da conta padrão, além das permissões extras listadas abaixo

pg_rds_superuser

Para listar todas as funções na sua instância, execute:

SELECT rolname FROM pg_roles;

Conta padrão

A conta padrão possui as mesmas permissões de um usuário sem privilégios no PostgreSQL open source. Para mais detalhes, consulte a documentação do PostgreSQL.

Conta privilegiada

A conta privilegiada reúne todas as permissões da conta padrão e adiciona as seguintes capacidades:

Permissão

Descrição

Two-phase commit (2PC)

Confirma todas as transações preparadas em vários bancos de dados ou sistemas

VACUUM

Executa comandos VACUUM em tabelas para recuperar espaço em disco e atualizar estatísticas

CREATE EVENT TRIGGER

Crie gatilhos de evento ou transfira a propriedade do gatilho para o proprietário da conta privilegiada

CREATE EXTENSION

Instale extensões suportadas

LEAKPROOF

Defina ou modifique o atributo LEAKPROOF em funções

CREATE PUBLICATION

Crie publicações para replicação lógica ou transfira a propriedade da publicação

CREATE SUBSCRIPTION

Crie assinaturas para replicação lógica ou transfira a propriedade da assinatura

Text search

Realiza buscas de texto completo e correspondências baseadas em texto

ALTER TYPE ... OWNER TO

Transfere a propriedade de tipos de dados

Promover contas

Crie uma conta privilegiada ou eleve uma conta padrão para privilegiada

Monitorar processos de backend

Consulta e encerra processos de backend de qualquer conta via pg_stat_activity

Visualize configurações de conexão

Lê detalhes de conexão do backend em pg_stat_activity

GRANT / REVOKE

Concede ou revoga permissões em objetos pertencentes a contas padrão

SET ROLE

Alterna a sessão atual para o escopo de permissão de uma conta padrão

As seções a seguir apresentam exemplos de SQL para cada permissão.

Two-phase commit (2PC)

O protocolo two-phase commit (2PC) garante que todas as transações em múltiplos bancos de dados ou sistemas sejam confirmadas ou revertidas em conjunto, mantendo a consistência dos dados. Para mais informações, consulte SQL PREPARE TRANSACTION.

Exemplos

O comando VACUUM recupera o espaço em disco ocupado por linhas excluídas e atualize as estatísticas da tabela. Para mais informações, consulte VACUUM.

-- Vacuum all tables using default settings
VACUUM;

-- Vacuum all tables and reclaim physical storage (takes longer and uses more resources)
VACUUM FULL;

-- Vacuum a specific table
VACUUM FULL <table_name>;

Exemplos

Gatilhos de evento são acionados em eventos DDL como CREATE, ALTER e DROP. Para mais informações, consulte CREATE EVENT TRIGGER.

-- Create an event trigger that calls test_function() after any DDL command
CREATE EVENT TRIGGER test_trigger
ON ddl_command_end
EXECUTE FUNCTION test_function();

-- Transfer ownership of the event trigger
ALTER EVENT TRIGGER test_trigger OWNER TO new_owner;

Exemplo

Instale uma extensão na instância. Para visualizar as extensões suportadas, consulte Extensões suportadas pelo ApsaraDB RDS for PostgreSQL.

CREATE EXTENSION <extension_name>;

Exemplo

O atributo LEAKPROOF declara que uma função não vaza informações por meio de seus argumentos ou resultado. Para mais informações, consulte CREATE FUNCTION.

CREATE OR REPLACE FUNCTION test_function()
RETURNS void
LANGUAGE sql
LEAKPROOF
AS $$
-- Implementation code of the function
$$;

Exemplo

Publicações definem o conjunto de alterações do banco de dados a serem transmitidas aos assinantes na replicação lógica. Para mais informações, consulte CREATE PUBLICATION.

-- Create a publication for all tables
CREATE PUBLICATION test_publication FOR ALL TABLES;

-- Transfer publication ownership
ALTER PUBLICATION <publication_name> OWNER TO <new_owner>;

Exemplo

Assinaturas recebem alterações de uma publicação e as aplicam ao banco de dados local. Para mais informações, consulte CREATE SUBSCRIPTION.

-- Create a subscription connected to a remote publisher
-- test_publication is the name of the publication on the publisher
CREATE SUBSCRIPTION test_subscription
  CONNECTION 'host=<Publisher endpoint> port=<Publisher port> dbname=<Database> user=<Account> password=<Password>'
  PUBLICATION test_publication
  WITH (slot_name = <replication_slot_name>, create_slot = false);

-- Transfer subscription ownership
ALTER SUBSCRIPTION <subscription_name> OWNER TO <new_owner>;

Busca de texto

Utilize o recurso de busca de texto para executar pesquisas de texto completo e correspondências baseadas em texto. Para mais informações, consulte Full Text Search.

Exemplo

Transfira a propriedade de um tipo de dados.

ALTER TYPE <type_name> OWNER TO <new_owner>;

Exemplo

Crie uma nova conta privilegiada ou promova uma conta padrão existente para privilegiada.

-- Create an account
CREATE USER <user_name> WITH PASSWORD '<password>';

-- Grant the pg_rds_superuser role to promote the account to privileged
GRANT pg_rds_superuser TO <user_name>;

Exemplo

Consulte processos de backend de qualquer conta e encerre-os se necessário.

-- List backend processes for a specific account
SELECT pid, datname, usename, application_name
FROM pg_stat_activity
WHERE usename = '<privileged account or standard account>';

-- Terminate a process by PID
SELECT pg_terminate_backend(pid);

Exemplo

Leia todos os detalhes de conexão de qualquer conta em pg_stat_activity.

SELECT *
FROM pg_stat_activity
WHERE usename = '<privileged account or standard account>';

Exemplo

Conceda ou revogue permissões em objetos pertencentes a contas padrão. Para mais informações, consulte GRANT e REVOKE.

-- Grant DELETE permission on a table to a standard account
GRANT DELETE ON <table_name> TO <user_name>;

-- Revoke the permission
REVOKE DELETE ON <table_name> FROM <user_name>;

Exemplo

Restrinja a sessão atual ao escopo de permissão de uma conta padrão.

SET ROLE <standard_account>;

Próximos passos

Para gerencie permissões detalhadas na sua instância, consulte Gerenciar permissões em uma instância do ApsaraDB RDS for PostgreSQL.