CREATE PACKAGES POLICY¶
新しい パッケージポリシー を作成するか、既存のパッケージポリシーを置き換えます。
パッケージポリシーを作成したら、 ALTER ACCOUNT ステートメントを使用してSnowflakeアカウントにパッケージポリシーを適用します。
構文¶
CREATE [ OR REPLACE ] PACKAGES POLICY [ IF NOT EXISTS ] <name>
  LANGUAGE PYTHON
  [ ALLOWLIST = ( [ '<packageSpec>' ] [ , '<packageSpec>' ... ] ) ]
  [ BLOCKLIST = ( [ '<packageSpec>' ] [ , '<packageSpec>' ... ] ) ]
  [ ADDITIONAL_CREATION_BLOCKLIST = ( [ '<packageSpec>' ] [ , '<packageSpec>' ... ] ) ]
  [ COMMENT = '<string_literal>' ]
必須パラメーター¶
- name
- パッケージポリシーの識別子(つまり、名前)を指定します。パッケージポリシーが作成されるスキーマに対して一意である必要があります。 - また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: - "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。- 詳細については、 識別子の要件 をご参照ください。 
- LANGUAGE PYTHON
- このパッケージポリシーが適用される言語を指定します。 
オプションのパラメーター¶
- ALLOWLIST = ( [ 'packageSpec' ] [ , 'packageSpec' ... ] )
- 許可されるパッケージ仕様のリストを指定します。 - デフォルト: - ('*')(すべてのパッケージを許可)。
- BLOCKLIST = ( [ 'packageSpec' ] [ , 'packageSpec' ... ] )
- ブロックされるパッケージ仕様のリストを指定します。このパラメーターの設定を解除するには、空のリストを指定します。 - デフォルト: - ()(パッケージをブロックしない)。
- ADDITIONAL_CREATION_BLOCKLIST = ( [ 'packageSpec' ] [ , 'packageSpec' ... ] )
- 作成時にブロックされるパッケージ仕様のリストを指定します。このパラメーターの設定を解除するには、空のリストを指定します。 - ADDITIONAL_CREATION_BLOCKLISTが設定されている場合は、作成時に基本の BLOCKLIST に追加されます。仮の UDFs と匿名ストアドプロシージャの場合、- ADDITIONAL_CREATION_BLOCKLISTは作成時と実行時の両方で基本の BLOCKLIST に追加されます。- デフォルト: - ()(パッケージをブロックしない)。
- COMMENT = 'string_literal'
- パッケージポリシーのコメントを追加するか、既存のコメントを上書きします。 
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
| 権限 | オブジェクト | 注意 | 
|---|---|---|
| CREATE PACKAGES POLICY | スキーマ | 
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
- OR REPLACEと- IF NOT EXISTS句は互いに排他的です。両方を同じステートメントで使うことはできません。
- CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。 
- メタデータについて: - 注意 - Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。 
例¶
現在のアカウントのパッケージポリシーを作成します。
CREATE PACKAGES POLICY yourdb.yourschema.packages_policy_prod_1 LANGUAGE PYTHON ALLOWLIST = ('numpy', 'pandas==1.2.3', ...) BLOCKLIST = ('numpy==1.2.3', 'bad_package', ...) COMMENT = 'Packages policy for the prod_1 environment';