DROP ROLE — remove uma função de banco de dados (role)
DROP ROLE [ IF EXISTS ] nome [, ...]
O comando DROP ROLE remove as funções de
banco de dados (roles) especificadas.
Para remover uma função de banco de dados de superusuário,
é necessário ser um superusuário;
para remover as funções de banco de dados de não superusuário,
é necessário ter o privilégio CREATEROLE
e ter recebido o privilégio ADMIN OPTION
na função de banco de dados.
Uma função de banco de dados não pode ser removida se ainda estiver referenciada em qualquer banco de dados da instância; será relatado erro se isto acontecer. Antes de remover a função de banco de dados, é necessário remover todos os objetos que ela possui (ou reatribuir sua propriedade), e revogar quaisquer privilégios concedidos à função em outros objetos. Os comandos REASSIGN OWNED e DROP OWNED podem ser úteis para esta finalidade; veja Seção 21.4 para obter mais informações.
Entretanto, não é necessário remover os membros da função de banco
de dados; o comando DROP ROLE revoga,
automaticamente, quaisquer adesões da função de banco de dados
de destino em outras funções de banco de dados, e de outras funções
de banco de dados na função de banco de dados de destino.
As outras funções de banco de dados não são removidas nem afetadas
de outra forma.
IF EXISTSNão será relatado nenhum erro se a função de banco de dados não existir. É emitido um aviso neste caso.
nomeO nome da função de banco de dados a ser removida.
O PostgreSQL inclui o utilitário dropuser, que tem a mesma funcionalidade desse comando (na verdade, chama este comando), mas pode ser executado a partir do interpretador de comandos.
Para remover a função de banco de dados (role):
DROP ROLE jonathan;
O padrão SQL define o comando
DROP ROLE, mas permite que apenas uma função
de banco de dados seja removida por vez, e especifica requisitos
de privilégio diferentes dos usados pelo
PostgreSQL.