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 |
スキーマ |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
OR REPLACE 句と IF NOT EXISTS 句は互いに排他的です。この2つを同じステートメントで使うことはできません。
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';