CREATE DATABASE ROLE

新しい データベースロール を作成するか、システム内の既存のデータベースロールを置き換えます。

データベースロールを作成後にオブジェクト権限を付与し、そのデータベースロールを他のデータベースロールまたはアカウントロールに付与して、システム内のオブジェクトのアクセス制御セキュリティを有効にできます。

このコマンドは次のバリアントをサポートしています。

  • CREATE OR ALTER DATABASE ROLE: データベースロールが存在しない場合は新規に作成し、存在する場合は既存のデータベースロールを変更します。

Tip

SQL 以外にも、 Snowflake REST APIs、 Snowflake Python APIs、 Snowflake CLI などのインターフェイスを使うことができます。 代替インターフェイス をご参照ください。

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

GRANT <権限>, GRANT DATABASE ROLE , GRANT OWNERSHIP , DROP DATABASE ROLE , ALTER DATABASE ROLE , SHOW DATABASE ROLES, CREATE <オブジェクト> ... CLONE, CREATE OR ALTER <オブジェクト>

構文

CREATE [ OR REPLACE ] DATABASE ROLE [ IF NOT EXISTS ] <name>
  [ COMMENT = '<string_literal>' ]
Copy

バリアント構文

CREATE OR ALTER DATABASE ROLE

データベースがまだ存在しない場合は新規に作成し、存在する場合は既存のデータベースをステートメントで定義されたロールに変換します。CREATE OR ALTER DATABASE ROLE ステートメントは、 CREATE DATABASE ROLE ステートメントの構文ルールに従い、このステートメントには ALTER DATABASE ROLE ステートメントと同じ制限があります。

CREATE OR ALTER DATABASE ROLE <name>
  [ COMMENT = '<string_literal>' ]
Copy

詳細については、 CREATE OR ALTER DATABASE ROLE の使用上の注意 をご参照ください。

必須パラメーター

name

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

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

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

詳細については、 識別子の要件 をご参照ください。

オプションのパラメーター

COMMENT = 'string_literal'

データベースロールのコメントを指定します。

デフォルト: 値なし

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

メモ

CREATE DATABASE ROLE

データベース

データベースに対する OWNERSHIP 権限を持つロールは、別のアカウントロールに CREATE DATABASE ROLE 権限を付与できます。

OWNERSHIP

データベースロール

既存 のデータベースロールに対して CREATE OR ALTER DATABASE ROLE ステートメントを実行するために必要です。

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

一般的な使用上の注意

  • データベースロールを作成すると、そのデータベースロールを含むデータベースの USAGE 権限がデータベースロールに自動的に付与されます。

注意

データベースロールを再作成しないでください(OR REPLACE キーワードを使用)。バックグラウンドで、オブジェクトを再作成する(CREATE OR REPLACE <オブジェクト> を使用)と、オブジェクトは、最初にドロップされてから作成されます。データベースロールを再作成すると、データベースロールが付与されているすべての共有からデータベースロールがドロップされます。これらの共有にデータベースロールを再度付与する必要があります。

データベースロールを再作成する必要がある場合は、データベースロールを含む共有のデータコンシューマーに通知します。データコンシューマーは、データベースロールを自分のアカウントロールに再度付与する必要があります。

メタデータについて、

注意

Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

CREATE OR ALTER DATABASE ROLE の使用上の注意

  • ALTER DATABASE ROLE コマンドのすべての制限が適用されます。

  • タグの設定や設定解除はサポートされていませんが、既存のタグは CREATE OR ALTER DATABASE ROLE ステートメントによって変更されることはなく、そのまま残ります。

データベース d1 にデータベースロール dr1 を作成します。

CREATE DATABASE ROLE d1.dr1;
Copy

代替インターフェイス