システムテーブルを使用して、Verticaクラスター全体に関するメタデータをテーブルレベル(権限を含む)でフェッチしようとしています。
テーブルのSELECTに必要な権限に関する情報はどこにありますか?
GRANTS
およびROLES
システムテーブルを調べましたが、ロールからテーブルへのマッピングが見つかりません。
私はHAS_TABLE_PRIVILEGE()
の使用を検討しましたが、ユーザーレベルでそれを行います。私はむしろ役割レベルでそれをしたいと思います。
SELECT * FROM grants ORDER BY grantor, grantee;
privileges_description
列は、(あなたの場合)SELECT
などの特権タイプを示します。 (SELECTのみが必要な場合は、そのクエリを調整できます。)
ソース: 管理者ガイドのオブジェクトに付与された権限の表示 (これはバージョン7.1.xのドキュメントからです。)
ユーザーの特権ビュー
次のコマンドを使用して、ユーザーに直接割り当てられている特権をユーザーに表示できます。
-- here u_uat_Logging is the name of the User
SELECT * FROM grants where grantee='u_uat_Logging';
ロールの権限ビュー
次のコマンドを使用して、ロールを使用して割り当てられた特権をユーザーに表示できます。
-- here uat_ccPlatform_Logging_readonly is the name of the Role
SELECT * FROM grants where grantee='uat_ccPlatform_Logging_readonly';
情報を表示するその他の重要なテーブル
users
-ユーザー情報を表示するgrants
-ユーザーの権限を表示するroles
-役割を表示するclient_auth
-認証を表示するには(IP制限/許可されたIPアクセス)resource_pools
-リソースプール情報を表示します