ユーザへの権限付与はユーザごとにGRANT文で割り当てる方法の他に、いくつかの権限をまとめた「ロール」を作成し、ユーザに割り当てる方法があります。

ロールのイメージ

ロールの作成

1)CREATE ROLE文でロールを作成します。

例)test_roleを作成する場合


2)スーパーユーザ、あるいは、オブジェクトの所有者で、作成したロールに権限を付与します。

例)publicスキーマのlineorderテーブルに対してSELECT権限を持つロールを作成する場合


ユーザへのロールの割り当て

作成したロールを任意のユーザに割り当てます。
1)GRANT文でロールを割り当てます。

例)kka_userにtest_roleを割り当てる場合


2)割り当てたロールを該当ユーザのデフォルトのロールに設定します。

例)kka_userのデフォルトロールにtest_roleを追加する場合

※本設定をしない場合、ロールを割り当てられたユーザは、ログイン後に毎回ロールを有効化する作業が必要になります。

割り当てられているロールの確認

ロールを割り当てられたユーザで以下のコマンドを実行すると、自身に割り当てられている(有効な)ロールを確認できます。

例)kka_userで確認した場合

上記の例ではkka_userにはtest_role、test_role2が割り当てられている(有効になっている)ことが確認できます。

作成したロールの情報を確認する

作成したロールに割り当てられている権限等の情報を確認する場合は、以下のSQLを実行します。

上記の例では、test_roleロールにはpublicスキーマのLINEORDERテーブルに対してのSELECT権限が付与されていることが確認できます。

[roles、grants]

列名内容
role_idロールID
nameロール名
assigned_roles割り当てられているロール
object_schema権限が付与されたスキーマ名
object_name権限が付与されたオブジェクト名
object_type権限が適用されるオブジェクト
privileges_description割り当てられている権限の詳細

検証バージョンについて

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