はじめに
ユーザやオブジェクトに与えられた権限はGRANTSシステムテーブルで確認することが可能です。
ただし、dbadminユーザでGRANTSシステムテーブルを検索すると、内部オブジェクトに関するものを含めた全ての権限が表示されてしまいます。
そのため、GRANTSシステムテーブルを確認する際は、権限を確認したいユーザやオブジェクトを条件に指定して検索するようにしてください。
GRANTSシステムテーブルの説明
列名 | データ型 | 説明 |
|---|---|---|
GRANTEE | VARCHAR | 権限を付与されているユーザー。 |
GRANTEE_ID | INTEGER | 権限を付与されたユーザーを一意に識別する、カタログに割り当てられた整数値。 |
GRANT_ID | INTEGER | 付与操作を一意に識別する、カタログに割り当てられた整数値。 |
GRANTOR | VARCHAR | 権限を付与したユーザ。 |
GRANTOR_ID | INTEGER | 権限を付与したユーザのID。 |
OBJECT_ID | INTEGER | 権限を付与されたオブジェクトのID。 |
OBJECT_NAME | VARCHAR | 権限が付与されているオブジェクトの名前。 |
OBJECT_SCHEMA | VARCHAR | 権限が付与されているスキーマの名前。 |
OBJECT_TYPE | VARCHAR | 権限が適用されたオブジェクト・タイプ (ROLE、SCHEMA、DATABASE、RESOURCEPOOLなど) 。 |
PRIVILEGES_DESCRIPTION | VARCHAR | INSERT、SELECTなど、オブジェクトに付与された権限をリストします。PRIVILEGES_DESCRIPTION出力の*は、権限にWITH GRANT OPTIONが含まれていることを示します。 |
実行例
grant_testユーザに付与されている権限を確認する例)
dbadmin=> SELECT grantee,privileges_description,object_name,object_type
dbadmin-> FROM grants
dbadmin-> WHERE grantee='grant_test';
grantee | privileges_description | object_name | object_type
------------+------------------------+-------------+--------------
grant_test | USAGE | general | RESOURCEPOOL
grant_test | SELECT, CREATE | public | SCHEMA
(2 rows)上記より、grant_testユーザにはgeneralリソースプールの利用権限とpublicスキーマに対するSELECTおよびCREATE権限が与えられていることが確認できます。
参考情報
GRANTS
データベース操作に必要な権限
https://www.ashisuto.co.jp/cm/analytics-database/authority.html
検証バージョンについて
この記事の内容はVertica 9.3で確認しています。
更新履歴
2020/05/29 本記事を公開