DROP DATABASE ROLE¶
Remove a função de banco de dados especificada do sistema.
- Consulte também:
CREATE DATABASE ROLE , ALTER DATABASE ROLE , SHOW DATABASE ROLES
Sintaxe¶
DROP DATABASE ROLE [ IF EXISTS ] <name>
Parâmetros¶
name
Especifica o identificador (ou seja, nome) para a função do banco de dados; deve ser único no banco de dados no qual a função é criada.
O identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo,
"My object"
). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.Se o identificador não estiver totalmente qualificado (na forma de
db_name.database_role_name
), o comando procura a função do banco de dados no banco de dados atual para a sessão.
Notas de uso¶
As funções d banco de dados descartadas não podem ser recuperadas; elas devem ser recriadas.
A propriedade de qualquer um dos objetos da função de banco de dados descartada é transferida para a função que executa o comando DROP DATABASEROLE. Para transferir a propriedade de cada um desses objetos para uma função de banco de dados diferente, use GRANT OWNERSHIP … COPY CURRENT GRANTS.
Se uma função de banco de dados tiver um privilégio futuro como concessor ou cessionário, a função de banco de dados só poderá 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 de banco de dados como concessor ou cessionário da concessão são removidas quando a função de banco de dados é descartada.
Consultar a exibição GRANTS_TO_ROLES do Account Usage para recuperar as concessões de privilégios que nomeiam uma função de banco de dados específica como o concedente ou o cessionário:
SELECT * FROM snowflake.account_usage.grants_to_roles WHERE grantee_name = upper('<database_name>.<db_role_name>') OR granted_by = upper('<database_name>.<db_role_name>');
O exemplo a seguir recupera as concessões onde
d1.dr1
é o concessor ou cessionário:SELECT * FROM snowflake.account_usage.grants_to_roles WHERE grantee_name = upper('d1.dr1') OR granted_by = upper('d1.dr1');
Exemplos¶
DROP DATABASE ROLE d1.dr1;