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>
Copy

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>');
    
    Copy

    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');
    
    Copy

Exemplos

DROP DATABASE ROLE d1.dr1;
Copy