Remove um usuário de um banco de dados. Vários usuários podem ser removidos com um único comando DROP USER. É necessário ser um superusuário do banco de dados ou ter a permissão DROP USER para executar esse comando.
Sintaxe
DROP USER [ IF EXISTS ] name [, ... ]
Parâmetros
- IF EXISTS
-
Cláusula que indica que, se o usuário especificado não existe, o comando não deve fazer alterações e deve retornar uma mensagem informando que o usuário não existe, em vez de encerrar com um erro.
Essa cláusula é útil durante o scripting para que o script não falhe se o comando DROP USER for executado em um usuário não existente.
- name
-
Nome do usuário a ser removido. É possível especificar vários usuários, com uma vírgula separando cada nome de usuário do texto.
Observações de uso
Não é possível descartar o usuário chamado rdsdb
ou o usuário administrador do banco de dados, que normalmente é chamado de awsuser
ou admin
.
Você não pode remover um usuário se o usuário tem um objeto de banco de dados, como um esquema, um banco de dados, uma tabela ou uma exibição, ou se o usuário tem algum privilégio em um banco de dados, uma tabela ou grupo. Se você tentar remover esse usuário, receberá um dos erros abaixo.
ERROR: user "username" can't be dropped because the user owns some object [SQL State=55006]
ERROR: user "username" can't be dropped because the user has a privilege on some object [SQL State=55006]
Para obter instruções detalhadas sobre como encontrar os objetos pertencentes a um usuário do banco de dados, consulte Como resolvo o erro “usuário não pode ser descartado” no Amazon Redshift?
nota
O Amazon Redshift verifica somente o banco de dados atual antes de descartar um usuário. DROP USER não retorna um erro se o usuário tiver objetos de banco de dados ou algum privilégio de objetos em outro banco de dados. Se você remover um usuário que tem objetos em outro banco de dados, o proprietário desses objetos será alterado para “unknown”.
Se um usuário tiver um objeto, primeiro remova o objeto ou altere sua propriedade para outro usuário antes de remover o usuário original. Se o usuário tiver privilégios para um objeto, revogue os privilégios antes de remover o usuário. O exemplo a seguir mostra como remover um objeto, alterar a propriedade e revogar privilégios antes de remover o usuário.
drop database dwdatabase;
alter schema dw owner to dwadmin;
revoke all on table dwtable from dwuser;
drop user dwuser;
Exemplos
O exemplo a seguir remove um usuário chamado paulo:
drop user paulo;
O exemplo a seguir exclui dois usuários, paulo e martha:
drop user paulo, martha;
O exemplo a seguir exclui o usuário paulo caso ele exista, ou não faz nada e retorna uma mensagem caso a conta não exista:
drop user if exists paulo;