はじめに

データベースオブジェクトの権限はGRANTによる個別付与、ロールによる付与、 継承による自動付与など様々な設定を基に決定されており、システムテーブルによる確認は煩雑になります。
Vertica9.3.1の新機能であるGET_PRIVILEGES_DESCRIPTIONファンクションを利用することで、指定されたデータベースオブジェクトに対する有効な権限を簡単に確認することができます。

GET_PRIVILEGES_DESCRIPTIONファンクション

構文

GET_PRIVILEGES_DESCRIPTION( ‘type’, ‘[[database.]schema.]name’ );
パラメータ説明
type次のいずれかのオブジェクトタイプを指定します。

・データベース
・テーブル
・スキーマ
・ビュー
・シーケンス
・機械学習モデル
・ライブラリ
・リソースプール
[database.]schemaデータベースとスキーマを指定します。
デフォルト
データベース:接続しているデータベース
スキーマ:public
nameオブジェクト名

利用例

fitnessスキーマに対するdbadminユーザの有効な権限を確認する例)

dbadminユーザは管理ユーザのため、全ての権限を所持していることが確認できます。

fitnessスキーマに対するu1ユーザの有効な権限を確認する例)

付与したSELECT、USAGE権限を所持していることを確認することができました。

参考情報

・GET_PRIVILEGES_DESCRIPTION
https://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/SQLReferenceManual/Functions/VerticaFunctions/GET_PRIVILEGES_DESCRIPTION.htm
・ユーザやオブジェクトに与えられた権限を確認する方法
http://vertica-tech.ashisuto.co.jp/grants-object/

検証バージョン

この記事の内容はVertica 9.3で確認しています。

更新履歴

2020/08/21 本記事を公開