OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

ログインユーザで付与されている特定オブジェクトの権限を確認する方法(9.3.1新機能)

公開日:
更新日:
基本操作
#関数

はじめに

データベースオブジェクトの権限は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=> SELECT GET_PRIVILEGES_DESCRIPTION('schema', 'fitness');
                                 GET_PRIVILEGES_DESCRIPTION
--------------------------------------------------------------------------------------------
 INSERT*, SELECT*, UPDATE*, DELETE*, ALTER*, REFERENCES*, DROP*, USAGE*, CREATE*, TRUNCATE*
(1 row)

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

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

*u1ユーザの作成*
dbadmin=> CREATE USER u1 ;
CREATE USER

*u1ユーザへfitnessスキーマのSELECT、USAGE権限を付与*
dbadmin=> GRANT SELECT,USAGE ON SCHEMA fitness TO u1;
GRANT PRIVILEGE

*u1ユーザでGET_PRIVILEGES_DESCRIPTIONファンクションを実行*
u1=> SELECT GET_PRIVILEGES_DESCRIPTION('schema', 'fitness');
 GET_PRIVILEGES_DESCRIPTION
----------------------------
 SELECT, USAGE
(1 row)

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

参考情報

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

検証バージョン

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

更新履歴

2020/08/21 本記事を公開