DROP DATABASE ROLE

指定されたデータベースロールをシステムから削除します。

こちらもご参照ください。

CREATE DATABASE ROLEALTER DATABASE ROLESHOW DATABASE ROLES

構文

DROP DATABASE ROLE [ IF EXISTS ] <name>
Copy

パラメーター

name

データベースロールの識別子(つまり、名前)を指定します。ロールが作成されるデータベース内で一意にする必要があります。

識別子はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

識別子が完全修飾されていない場合(db_name.database_role_name の形式)、コマンドはセッションの現在のデータベースでデータベースロールを検索します。

使用上の注意

  • ドロップされたデータベースロールは回復できません。再作成する必要があります。

  • ドロップされたデータベースロールが所有するオブジェクトの所有権は、 DROP DATABASEROLE コマンドを実行するロールに譲渡されます。これらの各オブジェクトの所有権を別のデータベースロールに譲渡するには、 GRANT OWNERSHIP ... COPY CURRENT GRANTS を使用します。

  • データベースロールに付与者または被付与者としての将来の権限がある場合、データベースロールをドロップできるのは、MANAGE GRANTS 権限があるロールを持つユーザーのみです。

  • データベースロールがドロップされると、そのデータベースロールを付与者または被付与者として指定する現在および将来のすべての付与がドロップされます。

    GRANTS_TO_ROLES Account Usageビューをクエリして、指定したデータベースロールを付与者または被付与者として指定する権限付与を取得します。

    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

    次の例では、 d1.dr1 が付与者または被付与者である付与を取得します。

    SELECT *
      FROM snowflake.account_usage.grants_to_roles
      WHERE grantee_name = upper('d1.dr1') OR granted_by = upper('d1.dr1');
    
    Copy

DROP DATABASE ROLE d1.dr1;
Copy