DROP ROLE¶
Remove a função especificada do sistema.
- Consulte também:
Sintaxe¶
DROP ROLE [ IF EXISTS ] <name>
Parâmetros¶
name
Especifica o identificador da função a ser descartada. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Notas de uso¶
As funções descartadas não podem ser recuperadas; elas devem ser recriadas.
Uma função não pode ser descartada se tiver o privilégio OWNERSHIP em um banco de dados compartilhado. Use o comando GRANT OWNERSHIP para transferir primeiro o privilégio OWNERSHIP no banco de dados compartilhado e depois descartar a função.
A propriedade de qualquer um dos objetos da função descartada é transferida para a função que executa o comando DROP ROLE. Para transferir a propriedade de cada um desses objetos para uma função diferente, use GRANT OWNERSHIP … COPY CURRENT GRANTS.
Se uma função tem um privilégio futuro como concessor ou cessionário, a função só pode ser descartada por um usuário com uma função que tenha o privilégio MANAGE GRANTS.
Todas as concessões atuais e futuras que nomeiam a função como concessor ou cessionário da concessão são removidas quando a função é descartada.
Consultar a exibição GRANTS_TO_ROLES do Account Usage para recuperar as concessões de privilégios que nomeiam uma função específica como o concedente ou o cessionário:
SELECT * FROM snowflake.account_usage.grants_to_roles WHERE grantee_name = upper('<role_name>') OR granted_by = upper('<role_name>');
O exemplo a seguir recupera as concessões onde
myrole
é o concessor ou cessionário:SELECT * FROM snowflake.account_usage.grants_to_roles WHERE grantee_name = upper('myrole') OR granted_by = upper('myrole');
Se uma função é uma concessora de funções para os usuários, o descarte da função revoga estas concessões automaticamente.
Exemplos¶
DROP ROLE myrole;