2022_08バンドル

このトピックでは、その月における次の動作の変更(ある場合)について説明します。

  • 廃止された機能。

  • 有効になったバンドルされた変更。

  • その他、実装されたバンドルされていない変更。

これらの変更について質問がある場合は、 Snowflakeサポート にお問い合わせください。

今月導入された新機能、拡張機能、および修正の詳細については、 2023年1月 をご参照ください。

重要

特に明記されていない限り、これらの変更は2022_08バンドルにあり、7.2リリースにおいてデフォルトで有効化されています。

このトピックの内容:

セキュリティの変更

SAML2 セキュリティ統合の編集: X.509 証明書の有効期限の強制

SAML2 セキュリティ統合を定義してシングルサインオンを有効にする場合、セキュリティ管理者は SAML2_X509_CERT パラメーターを使用してX.509証明書を指定します。

SnowflakeはこれらのX.509証明書の有効期限を強制的に適用し、期限切れの証明書は認証に失敗するようになりました。まだ発生していない NotBefore 日付の証明書も認証に失敗します。有効期限の強制を無効化することはできません。

以前:

Snowflakeでは、X.509証明書の有効期限をチェックして、有効期限が切れているかどうか、または NotBefore 日付がまだ発生していないかどうかの確認は行いませんでした。

現在:

Snowflakeは、X.509証明書の有効期限を強制します。現在の日付が証明書の有効期限内にない場合、認証は失敗します。

SQL の変更 --- コマンドおよび関数

データベースおよびスキーマ: パスワードポリシーとセッションポリシーのダングリング参照が発生する場合、ドロップまたは置換は不許可

パスワードポリシーとセッションポリシーに関する DROP SCHEMA、DROP DATABASE、CREATE OR REPLACE DATABASE、および CREATE OR REPLACE SCHEMA 操作の動作が次のように変更されました。

以前:

ポリシーがポリシーを含むSnowflakeアカウントに設定された場合、またはポリシーが同じアカウントのユーザーに設定された場合、Snowflakeはポリシーを含むスキーマ/データベースでの DROP および REPLACE 操作を許可していました。

現在:

ポリシーがポリシーを含むSnowflakeアカウントに設定されている場合、またはポリシーが同じアカウントのユーザーに設定されている場合、Snowflakeはポリシーを含むスキーマ/データベースでの DROP および REPLACE 操作を許可します。

その結果、上記4つのコマンドの動作が次のように変更されました。

操作に応じて、Snowflakeは次のエラーメッセージのいずれかを返します。

ユーザーに設定されたポリシー:

DROP DATABASE および CREATE OR REPLACE DATABASE:

ポリシー「MYDB.MYSCHEMA.POLICY1」がユーザー「JSMITH」に設定されているため、データベースをドロップできません。ポリシー「MYDB.MYSCHEMA.POLICY1」の設定を解除してから、ドロップ操作を再試行します。

DROP SCHEMA および CREATE OR REPLACE SCHEMA:

ポリシー「MYDB.MYSCHEMA.POLICY1」がユーザー「JSMITH」に設定されているため、スキーマをドロップできません。ポリシー「MYDB.MYSCHEMA.POLICY1」の設定を解除してから、ドロップ操作を再試行します。

アカウントに設定されたポリシー:

DROP DATABASE および CREATE OR REPLACE DATABASE:

ポリシー「MYDB.MYSCHEMA.POLICY1」がアカウント「MYACCOUNT」に設定されているため、データベースをドロップできません。ポリシー「MYDB.MYSCHEMA.POLICY1」の設定を解除してから、ドロップ操作を再試行します。

DROP SCHEMA および CREATE OR REPLACE SCHEMA:

Cannot drop schema because policy 'MYDB.MYSCHEMA.POLICY1' is set on account 'MYACC

SHOW FUNCTIONS コマンド: 出力の新しい列

次の列が SHOW FUNCTIONS コマンドの出力に追加されました。

列名

データ型

説明

IS_MEMOIZABLE

VARCHAR

関数がメモ化可能な関数かどうかを指定します。

この追加の影響を最小限に抑えるために、列は出力の最後の列として追加されています。

SHOW VIEWS コマンド:出力の新しい列

SHOW VIEWS 出力に新しい CHANGE_TRACKING 列が含まれるようになりました。この列は、ビューで変更追跡が有効になっているかどうかを示します。

列には、個々のビューについて次のいずれかの値が表示されます。

  • ON: 変更追跡が有効になっています。ストリーム、または SELECT ステートメントの CHANGES 句を使用して、この変更追跡データをクエリできます。

  • OFF: 変更追跡が現在は無効になっていますが、 有効化することができます。

この変更の影響を限定するために、列は出力の最後の列として追加されています。

GET_DDL 関数: タグおよびポリシーに追加されたサポート

GET_DDL 関数は、次のタグとポリシーをサポートするようになりました。

  • タグがテーブル、ビュー、またはマテリアライズドビューに設定されている場合、 GET_DDL 関数の呼び出しの出力には、 CREATE ステートメントのタグ割り当てが含まれます。

  • スキーマまたはデータベースに1つ以上のタグが設定されている場合、 GET_DDL 関数の呼び出しの出力には、タグを割り当てる次のステートメントが含まれます。

    • タグがデータベースに設定されている場合は、 ALTER DATABASE ステートメント。

    • タグがスキーマに設定されている場合は、 ALTER SCHEMA ステートメント。

    • タグがデータベースとスキーマの両方に設定されている場合は、 ALTER DATABASE ステートメントと ALTER SCHEMA ステートメント。

  • タグがスキーマで作成され、 GET_DDL 関数を呼び出すときにこの同じスキーマが指定されている場合、出力にはタグを生成する CREATE OR REPLACE ステートメントが含まれます。

    同じことがデータベースで作成されたタグにも当てはまります。GET_DDL 関数を呼び出すときにデータベースを指定すると、タグを生成する CREATE OR REPLACE ステートメントが含まれます。

  • 行アクセスポリシーがテーブルまたはビューに設定されているか、マスキングポリシーが列に設定されている場合は、テーブルまたはビューで GET_DDL 関数を呼び出すと、ポリシーが CREATE ステートメントのテーブル、ビュー、または列に設定されていることを示す WITH キーワードが追加されます。

    テーブルを手動で作成する場合は、テーブルまたはビューに行アクセスポリシーを設定する際や、列にマスキングポリシーを設定する際に、 WITH キーワードの指定がオプションになることに注意してください。

SQL の変更 --- 使用状況ビューおよびInformation Schemaビュー/テーブル関数

データ共有の使用状況ビュー: ビューの列の変更

DATA_SHARING_USAGE スキーマ(SNOWFLAKE 共有データベース内)のすべてのビューが次のように変更されました。

以前:

ビューの SNOWFLAKE_REGION 列に表示されるデータは、 <cloud> <region> のようにすべて小文字で表示されていました(例: aws us_west_2)。これは、SHOW REGIONS 出力でSnowflakeリージョンに表示される値と矛盾していました。

影響を受けるビュー:

現在:

上記のビューでは、SNOWFLAKE_REGION 列の値が <CLOUD>_<REGION> のようにすべて大文字で表示されるようになりました。これは SHOW REGIONS 出力と一致しています。

たとえば、AWS の us_west_2 リージョンは AWS_US_WEST_2 と表示されます。

データ共有の使用状況ビュー: ビューの新しい列

このお知らせは、2023年2月13日に追加されました。

REGION_GROUP 列が DATA_SHARING_USAGE スキーマにある次のビューに追加されました。

この追加の影響を最小限に抑えるために、 REGION_GROUP 列は出力の最後の列として追加されています。

ACCESS_HISTORY ビュー(Account Usage): ビューの新しい列

次の列が、 ACCESS_HISTORY ビューに追加されました(ACCOUNT_USAGE スキーマ内)。

  • object_modified_by_ddl

  • policies_referenced

この追加の影響を最小限に抑えるために、列は出力の最後の列として追加されています。

これらの列はプレースホルダーであり、今後のリリースで入力されることに注意してください。

FUNCTIONS ビュー(Information Schema): 出力の新しい列

次の列が、Information Schema FUNCTIONS ビュー(INFORMATION_SCHEMA スキーマ内)に追加されました。

列名

データ型

説明

IS_MEMOIZABLE

VARCHAR

関数がメモ化可能な関数かどうかを指定します。

この追加の影響を最小限に抑えるために、列はビューの最後の列として追加されています。

TABLE_CONSTRAINTS ビュー(Account Usage): ビューの新しい列

次の新しい列が TABLE_CONSTRAINTS.ACCOUNT_USAGE ビューに追加されました(ACCOUNT_USAGE スキーマ内):

列名

データ型

説明

RELY

VARCHAR

クエリの書き換え中に、 NOVALIDATE モードの制約を考慮するかどうか。詳細については、 拡張制約のプロパティ をご参照ください。

USAGE_IN_CURRENCY_DAILY ビュー(Organization Usage): ビューの新しい列

USAGE_IN_CURRENCY_DAILY ビュー(ORGANIZATION_USAGE スキーマ内)に、新しい BALANCE_SOURCE 列が含まれるようになりました。

列名

データ型

説明

BALANCE_SOURCE

VARCHAR

日次使用料の支払いに使用される財源。特定の日に複数のソースが存在する可能性があるため、新しい列は、同じ日と使用状況タイプに複数のエントリがある場合に追加の洞察を提供します。

この変更の影響を制限するために、列はビューの最後の列として追加されています。

USERS ビュー(Account Usage): ビューの新しい列

USERS ビュー(ACCOUNT_USAGE スキーマ内)が更新され、新しい USER_ID 列が追加されました。

Data Sharingの変更

コンシューマー: アカウントが共有から取り消されている場合に、 SHOW コマンドがエラーを返す

共有が取り消されたコンシューマーアカウントでの SHOW <オブジェクト> コマンドの動作が、次のように変更されました。

以前:

コンシューマーアカウントが同じプロバイダーオブジェクトを含む2つ以上の共有をマウントし、後でプロバイダーが1つの共有のみからアカウントを取り消す場合、マウント済みデータベースまたは残りの共有にあるスキーマのコンシューマーアカウントで SHOW コマンドが実行されたときに、データが返されていました。

たとえば、同じプロバイダーオブジェクトを含む share1share2xy12345 コンシューマーアカウントにマウントされ、プロバイダーが share2 からアカウントを取り消した場合です。

alter share share2 remove accounts = xy12345;
Copy

次のコマンドのいずれかがコンシューマーアカウントで実行されると、有効なデータが返されていました。

SHOW <objects> IN DATABASE <revoked_mounted_db>;

SHOW <objects> IN SCHEMA <revoked_mounted_db>.<schema>;
Copy
現在:

同じシナリオが発生すると、上記の SHOW コマンドを実行するときに、次のようなエラーが返されます。

SQL compilation error: <特定のエラーの詳細>.

複製の変更

ネットワークポリシー: 複製とフェールオーバー/フェールバックを伴うポリシーのダングリング参照

フェールオーバー/フェールバックおよびネットワークポリシーと共に、複製およびネットワークポリシーの動作が次のように変更されました。

以前:

ネットワークポリシーとその参照(つまり、プライマリアカウントと同アカウントのユーザーへの割り当て)を使用して、次を実行します。

  • ユーザーレベルのネットワークポリシーがある場合は、複製/フェールオーバーグループに USERS および NETWORK POLICIES を指定します。

  • アカウントレベルのネットワークポリシーしかない場合は、複製/フェールオーバーグループに NETWORK POLICIES を指定します。

  • 結果がターゲットアカウントのダングリング参照であった場合でも、複製とフェールオーバー/フェールバックが発生していました。

ダングリング参照とは、セカンダリアカウントのオブジェクトが、同じアカウントに存在しないオブジェクトを参照していることを意味します。例:

  • セカンダリアカウントのユーザー/ユーザー名が、セカンダリアカウントにないネットワークポリシーを参照している。このシナリオは、ネットワークポリシーがプライマリアカウントのユーザーに割り当てられ、複製/フェイルオーバーグループが USERS を指定し、NETWORK POLICIES を指定しない場合に発生します。

  • ネットワークポリシーがプライマリアカウントにアタッチされ、複製/フェイルオーバーグループに NETWORK POLICIES は含まれません。

現在:

現在の動作は次のように変更されています。

  • ユーザーレベルのネットワークポリシーがある場合は、複製/フェールオーバーグループに ACCOUNT PARAMETERS、 USERS、および NETWORK POLICIES を指定します。

  • アカウントレベルのネットワークポリシーしかない場合は、複製/フェールオーバーグループに ACCOUNT PARAMETERS および NETWORK POLICIES を指定します。

  • 結果がダングリング参照である場合は、セカンダリアカウントでの複製とフェールオーバー/フェールバックに失敗します。

たとえば、プライマリアカウントにアカウントレベルのネットワークポリシーセットと、ユーザーに設定されたユーザーレベルのネットワークポリシーがある場合は、アカウントレベルのパラメーターとユーザーの両方に対してターゲットアカウントにダングリング参照が作成されます。

Dangling references in the snapshot. Correct the errors before refreshing again. The following references are missing (referred entity <- [referring entities]):

ACCOUNT PARAMETERS <- [NETWORK POLICIES]. Add ACCOUNT PARAMETER into the replication group to fix it.

NETWORK_POLICY 'MYACCOUNT.P2' <- [USER 'MYACCOUNT.USERNAME']
Copy

それ以外の場合、エラーメッセージは、複製グループの構成方法とターゲットアカウントでの結果に応じて、アカウントパラメーターステートメントまたはユーザーステートメントのいずれかを指定します。

複製グループ: アカウントオブジェクトを単一グループのメンバーシップに制限する

アカウントの複製により、複製グループまたはフェールオーバーグループでのアカウントオブジェクトの複製が可能になります。アカウントオブジェクトには、アカウントパラメーター、ロール、セキュリティオブジェクト、およびユーザーを含めることができます。サポートされているオブジェクトの完全なリストについては、 複製されたオブジェクト をご参照ください。

現在、アカウントオブジェクトタイプを含むフェールオーバーグループがアカウントにない場合、異なるアカウントオブジェクトタイプを複数の複製グループに含めることができます。この動作は次のように変更されました。

以前:

アカウントオブジェクトタイプは、複数の複製グループに含めることができます。

現在:

アカウントオブジェクト型は、1つの複製グループに限定されます。

複製グループ: ターゲットアカウントの読み取り専用アカウントパラメーター

アカウントオブジェクトタイプが複製グループまたはフェールオーバーグループに含まれている場合、そのオブジェクトタイプはターゲットアカウントで読み取り専用になります。たとえば、ロールがターゲットアカウントに複製される場合、ターゲットアカウントでロールを作成または変更することはできません。

アカウントパラメーターは、ターゲットアカウントに複製される複製グループまたはフェールオーバーグループに含めることができます。一部のパラメーター(例: STATEMENT_TIMEOUT_IN_SECONDS)は、複数のレベル(アカウントレベルおよびユーザーごとなど)で設定できます。アカウントパラメーターの複製は、パラメーターのアカウントレベルの設定のみに対して行われます。

アカウントパラメーターの複製の動作は次のように変更されました。

以前:

複製グループまたはフェールオーバーグループの OBJECT_TYPES リストに ACCOUNT PARAMETERS が含まれていた場合は、ターゲットアカウントのセカンダリアカウントレベルのパラメーターが変更される可能性があります。

現在:

複製グループまたはフェールオーバーグループの OBJECT_TYPES リストに ACCOUNT PARAMETERS が含まれている場合、ターゲットアカウントのセカンダリアカウントレベルのパラメーターは読み取り専用です。

SHOW REPLICATIONGROUPS コマンド: 出力の変更

SHOW REPLICATION GROUPS コマンドの出力には next_scheduled_refresh 列が含まれており、 複製スケジュール のあるセカンダリ複製グループまたはフェイルオーバーグループについて、スケジュールされた次回の更新日時が表示されます。この列は、現在のリージョンにない場合、複製スケジュールのあるセカンダリ複製グループまたはフェールオーバーグループについては NULL になります。

この動作は次のように変更されました。

以前:

next_scheduled_refresh 列は、現在のリージョンにない複製スケジュールのあるセカンダリ複製グループまたはフェールオーバーグループについては NULL でした。

現在:

next_scheduled_refresh 列には、複製スケジュールのあるすべてのセカンダリ複製グループおよびフェールオーバーグループについて、スケジュールされた次回の更新日時が含まれます。