CREATE OR ALTER VERSIONED SCHEMA¶
バージョン管理された新しいスキーマを作成するか、バージョン管理された既存のスキーマを変更します。このコマンドは、Native Apps Frameworkのアプリケーションインスタンスでのみサポートされています。
- こちらもご参照ください。
構文¶
CREATE OR ALTER VERSIONED SCHEMA <name>
[ WITH MANAGED ACCESS ]
[ DATA_RETENTION_TIME_IN_DAYS = ]
[ MAX_DATA_EXTENSION_TIME_IN_DAYS = ]
[ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
[ COMMENT = '<string_literal>' ]
必須パラメーター¶
name
スキーマの識別子を指定します。スキーマが作成されるアプリケーションインスタンスに対して一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれている場合を除き、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
オプションのパラメーター¶
WITH MANAGED ACCESS
バージョン管理された管理スキーマを指定します。バージョン管理された管理アクセススキーマは、スキーマの所有者とともに権限管理を集中化します。
通常のバージョン管理されたスキーマでは、オブジェクトの所有者(つまり、オブジェクトに対する OWNERSHIP 権限を持つロール)は、オブジェクトに対する追加の権限を他のロールに付与できます。
管理スキーマでは、スキーマの所有者が、スキーマ内のオブジェクトに対する 将来の付与 を含むすべての権限付与を管理します。オブジェクト所有者は、オブジェクトに対する OWNERSHIP 権限を保持します。ただし、オブジェクトの権限付与を管理できるのはスキーマ所有者のみです。
DATA_RETENTION_TIME_IN_DAYS = integer
スキーマでTime Travelアクション(CLONE および UNDROP)を実行できる日数を指定し、スキーマで作成されたすべてのテーブルのデフォルトのTime Travel保持時間を指定します。詳細については、 Time Travelの理解と使用 をご参照ください。
このオブジェクトレベルパラメーターの詳細な説明、およびオブジェクトパラメーターの詳細については、 パラメーター をご参照ください。テーブルレベルの保持時間の詳細については、 CREATE TABLE および Time Travelの理解と使用 をご参照ください。
値:
Standard Edition:
0
または1
Enterprise Edition:
永続スキーマの場合は
0
~90
一時スキーマの場合は
0
または1
デフォルト:
Standard Edition:
1
Enterprise Edition(またはそれ以上):
1
(データベースまたはアカウントレベルで別のデフォルト値が指定されていない場合)
注釈
0
の値は、スキーマのTime Travelを効果的に無効にします。MAX_DATA_EXTENSION_TIME_IN_DAYS = integer
Snowflakeがスキーマ内のテーブルのデータ保持期間を延長して、テーブル上のストリームが古くなるのを防ぐことができる最大日数を指定するオブジェクトパラメーター。
このパラメーターの詳細については、 MAX_DATA_EXTENSION_TIME_IN_DAYS をご参照ください。
DEFAULT_DDL_COLLATION = 'collation_specification'
スキーマに追加されたすべてのテーブルのデフォルトの 照合順序仕様 を指定します。デフォルトは、個々のテーブルレベルで上書きできます。
パラメーターの詳細については、 DEFAULT_DDL_COLLATION をご参照ください。
COMMENT = 'string_literal'
スキーマのコメントを指定します。
デフォルト: 値なし
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE SCHEMA |
アプリケーション |
スキーマがすでに存在しており、スキーマを変更する場合は、アプリケーションの OWNERSHIP 権限が必要です。 |
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
注釈
通常、バージョン管理されたスキーマはセットアップスクリプトで作成しますが、バージョン管理されたスキーマは、以下で作成することもできます。
所有者権限ストアドプロシージャから。
コンシューマーカウントで、アプリケーションの CREATE SCHEMA 権限を持つアプリケーションロールを使用する。
使用上の注意¶
スキーマが存在しない場合、Snowflakeはバージョン管理されたスキーマを作成します。
スキーマが存在し、すでにコマンドに一致している場合、Snowflakeはこれを操作なしと判断します。
スキーマが存在し、コマンドと一致しない場合、Snowflakeはコマンドと一致するようにバージョン管理されたスキーマを修正します。