メタデータセキュリティ
Amazon Redshift の行レベルのセキュリティと同様に、メタデータセキュリティではメタデータをよりきめ細かく制御できます。プロビジョニングされたクラスターまたはサーバーレスワークグループでメタデータセキュリティが有効になっている場合、ユーザーは、表示アクセス権のあるオブジェクトのメタデータを表示できます。メタデータセキュリティにより、必要に応じて可視性を分離できます。例えば、1 つのデータウェアハウスを使用してすべてのデータストレージを一元化できます。ただし、複数のセクターのデータを保存すると、セキュリティ管理が難しくなる可能性があります。メタデータセキュリティを有効にすると、可視性を設定できます。あるセクターのユーザーにはオブジェクトの可視性を高め、別のセクターのユーザーには表示アクセスを制限することができます。メタデータセキュリティは、スキーマ、テーブル、ビュー、マテリアライズドビュー、ストアドプロシージャ、ユーザー定義機能、および機械学習モデルなどのすべてのオブジェクトタイプをサポートしています。
ユーザーは、次の状況でオブジェクトのメタデータを表示できます。
-
オブジェクトへのアクセスがユーザーに許可されている場合。
-
ユーザーが所属するグループまたはロールにオブジェクトアクセスが付与されている場合。
-
オブジェクトが公開されている場合。
-
ユーザーがデータベースオブジェクトの所有者である場合。
メタデータセキュリティを有効にするには、ALTER SYSTEM コマンドを使用します。ALTER SYSTEM コマンドをメタデータセキュリティで使用する方法の構文は次のとおりです。
ALTER SYSTEM SET metadata_security=[true|t|on|false|f|off];
メタデータセキュリティを有効にすると、必要なアクセス許可を持つすべてのユーザーが、アクセス権を持つオブジェクトの関連メタデータを表示できます。特定のユーザーだけがメタデータセキュリティを表示できるようにするには、ACCESS CATALOG
アクセス許可をロールに付与し、そのロールをそのユーザーに割り当てます。ロールを使用してセキュリティコントロールを改善する方法の詳細については、「ロールベースのアクセスコントロール」を参照してください。
次の例は、ロールに ACCESS CATALOG
アクセス許可を付与し、そのロールをユーザーに割り当てる方法を示しています。アクセス許可の付与の詳細については、GRANT コマンドを参照してください。
CREATE ROLE sample_metadata_viewer; GRANT ACCESS CATALOG TO ROLE sample_metadata_viewer; GRANT ROLE sample_metadata_viewer to salesadmin;
すでに定義されているロールを使用する場合は、システム定義ロール operator
、secadmin
、dba
、および superuser
のすべてに、オブジェクトメタデータを表示するために必要なアクセス許可が付与されます。デフォルトでは、スーパーユーザーはカタログ全体を表示できます。
GRANT ROLE operator to sample_user;
ロールを使用してメタデータセキュリティをコントロールしている場合、ロールベースのアクセスコントロールに付属するすべてのシステムビューと機能にアクセスできます。例えば、SVV_ROLES ビューをクエリして、すべてのロールを表示できます。ユーザーがロールまたはグループのメンバーかどうかを確認するには、USER_IS_MEMBER_OF 関数を使用します。SVV ビューの完全なリストについては、「SVV メタデータビュー」を参照してください。システム情報関数の一覧については、「システム情報関数」を参照してください。