プロバイダーの知的財産を保護する¶
このトピックでは、 Snowflake Native App Framework が Snowflake Native App で共有するオブジェクトに関する情報を再編集または削除して、プロバイダーのデータを保護する方法について説明します。
Snowflake Native App Framework での知的財産権の保護について¶
コンシューマーが Snowflake Native App をインストールすると、プロバイダーがアプリケーションロールを使用してオブジェクトに対する権限を付与しない限り、コンシューマーはアプリケーションオブジェクト内のオブジェクトを表示することはできません。
一般的に、コンシューマーがスキーマ、ビューを使用してオブジェクトのメタデータをクエリする場合、または Snowsight を使用して、これらのクエリのために Query Profile または Query History を表示する場合、 Snowflake Native App Framework はアプリケーションオブジェクト内のオブジェクトに関する情報をマスキングします。
クエリプロフィールからマスキングされた情報¶
Snowflake Native App Framework では、以下のコンテキストで クエリプロファイル からの情報をマスキングされます。
アプリのインストールやアップグレード時に実行されるクエリ。
アプリが所有するストアドプロシージャに由来するクエリ。
アプリが所有する非セキュアビューまたは関数を含むクエリ。
これらの型の各クエリに対して、 Snowsight はクエリプロファイルツリーを完全に表示する代わりに、クエリプロファイルデータを単一の空のノードに折りたたみます。
クエリ履歴からマスクキングされた情報¶
Snowflake Native App に関連するクエリでは、以下のコンテキストで クエリ履歴 から query_text
と error_message
フィールドがマスクキングされます。
クエリは、アプリがインストールまたはアップグレードされたときに実行される。
アプリが所有するストアドプロシージャの子ジョブから発生するクエリ。
これらの状況では、 Snowsight のクエリ履歴のセルは空白になります。
SQL コマンドとビューからマスキングされた情報¶
コンシューマーが SHOW または DESCRIBE コマンドを使用してアプリケーションオブジェクトまたはアプリが所有するオブジェクトに関する情報を表示する場合、実装の詳細に関する情報はマスキングされます。たとえば、関数定義と関数本文は、これらのコマンドの出力でマスキングされます。
実装の詳細に関する情報は、以下のコンテキストで ACCESS_HISTORY ビューからマスキングされます。
アプリのインストール時やアップグレード時に生成されるクエリ。
アプリが所有するストアドプロシージャとユーザー定義関数によって生成されるクエリ。
さらに、アプリが所有するビューについては、ベーステーブルに関する情報はマスクキングされます。
ブロックされたコンテキスト関数¶
アプリケーションオブジェクト内のオブジェクトに関連する情報を保護するために、 Snowflake Native App Framework は以下のコンテキスト関数をブロックします。
コンテキスト関数 |
共有コンテンツでブロック(nullを返す) |
セットアップスクリプトとストアドプロシージャでブロックされ、 Snowflake Native App が所有する UDFs (例外をスロー)。 |
---|---|---|
CURRENT_ROLE |
✔ |
|
CURRENT_ROLE_TYPE |
✔ |
|
CURRENT_USER |
✔ |
|
IS_ROLE_IN_SESSION |
✔ |
|
CURRENT_IP_ADDRESS |
✔ |
✔ |
CURRENT_AVAILABLE_ROLES |
✔ |
✔ |
CURRENT_SECONDARY_ROLES |
✔ |
✔ |
ALL_USER_NAMES |
✔ |
|
GET_USERS_FOR_COLLABORATION |
✔ |
|
CURRENT_WAREHOUSE |
✔ |
|
SYSTEM$ALLOWLIST |
✔ |