はじめに

作成したDBユーザーがデータベースに接続したり、SQL文を発行してオブジェクトにアクセスするには「権限」の設定が必要です。今回は、Verticaでオブジェクトを操作するために必要な権限について、ご紹介します。

権限一覧

スーパーユーザは、追加の権限を必要とせずに、次の表に示している全ての操作を実行できます。オブジェクトの所有者は、デフォルトでは自分のオブジェクトに対する操作をするために必要な権限を持っています。
No.項目操作内容必要な権限
1データベースCREATE DATABASE
※「Management Console」もしくは「Administration Tools」を利用して作成します。
スーパユーザのみ可
2DROP DATABASE
※「Management Console」もしくは「Administration Tools」を利用して削除します。
スーパユーザのみ可
3ALTER DATABASEスーパユーザのみ可
4スキーマCREATE SCHEMA データベースの CREATE権限
5DROP SCHEMAスキーマの所有者
6ALTER SCHEMA RENAME データベースの CREATE権限
7テーブルCREATE TABLE スキーマの CREATE権限

テーブル作成時にシーケンスを利用するためには、シーケンスの権限も必要になります。
・シーケンスの SELECT権限
・シーケンスが存在するスキーマに対しての USAGE権限
8DROP TABLE テーブルが存在するスキーマに対しての USAGE権限もしくはスキーマの所有者
9TRUNCATE TABLE テーブルが存在するスキーマに対しての USAGE権限もしくはスキーマの所有者
10ALTER TABLE ADD/DROP/ RENAME/ALTER-TYPE COLUMNテーブルが存在するスキーマに対しての USAGE権限
11ALTER TABLE ADD/DROP CONSTRAINT テーブルが存在するスキーマに対しての USAGE権限
12ALTER TABLE PARTITION (REORGANIZE)テーブルが存在するスキーマに対しての USAGE権限
13ALTER TABLE RENAME テーブルが存在するスキーマに対しての CREATE権限と USAGE権限
14ALTER TABLE SET SCHEMA ・現在テーブルが存在するスキーマの USAGE権限
・移動先スキーマの CREATE権限
15SELECT・テーブルの SELECT権限
・テーブルが存在するスキーマの USAGE権限
16INSERT・テーブルの INSERT権限
・テーブルが存在するスキーマの USAGE権限
17DELETE・テーブルの DELETE権限
・テーブルが存在するスキーマの USAGE権限
・WHERE句で他のテーブルのカラム値を参照する場合は、そのテーブルの SELECT権限も必要
18UPDATE・テーブルの UPDATE権限
・テーブルが存在するスキーマの USAGE権限
・WHERE句や SET句で他のテーブルのカラム値を参照する場合は、そのテーブルの SELECT権限も必要
19REFERENCES・外部キー制約を作成するテーブルの REFERENCES権限
・外部キー制約を作成するテーブルが存在するスキーマの USAGE権限
20ANALYZE_STATISTICS()・テーブルの INSERT/UPDATE/DELETE権限
・テーブルが存在するスキーマの USAGE権限
21ANALYZE_HISTOGRAM()・テーブルの INSERT/UPDATE/DELETE権限
・テーブルが存在するスキーマの USAGE権限
22DROP_STATISTICS() ・テーブルの INSERT/UPDATE/DELETE権限
・テーブルが存在するスキーマの USAGE権限
23DROP_PARTITION()・テーブルが存在するスキーマの USAGE権限
24ビューCREATE VIEW ・ビューが存在するスキーマの CREATE権限
・ビューのもとになっているオブジェクト(テーブル/ビュー)の SELECT権限
・ビューのもとになっているオブジェクトが存在するスキーマの USAGE権限
25DROP VIEWビューが存在するスキーマの USAGE権限もしくはビューの所有者
26SELECT ... FROM VIEW・ビューの SELECT権限
・ビューが存在するスキーマの USAGE権限
・ビューのもとになっているオブジェクト(テーブル/ビュー)に対しての SELECT権限
27プロジェクションCREATE PROJECTION ・プロジェクションのもとになっているテーブルの SELECT権限
・プロジェクションのもとになっているテーブルが存在するスキーマの USAGE 権限もしくはスキーマの所有者
・プロジェクションが存在するスキーマの CREATE権限
28AUTO/DELAYED PROJECTIONINSERT..SELECTまたは COPYの実行時:
・プロジェクションのもとになっているテーブルの SELECT権限
・プロジェクションのもとになっているテーブルが存在するスキーマの USAGE権限
29ALTER PROJECTION RENAME プロジェクションが存在するスキーマの USAGE権限と CREATE権限
30DROP PROJECTION プロジェクションが存在するスキーマの USAGE権限もしくはスキーマの所有者
31外部プロシージャCREATE PROCEDURE スーパユーザのみ可
32DROP PROCEDUREスーパユーザのみ可
33EXECUTE・プロシージャの EXECUTE権限
・プロシージャが存在するスキーマの USAGE権限
34ライブラリCREATE LIBRARYスーパユーザのみ可
35ALTER LIBRARYスーパユーザのみ可
36DROP LIBRARYスーパユーザのみ可
37ユーザ定義関数CREATE FUNCTION (SQL)CREATE FUNCTION (UDF)
CREATE TRANSFORM FUNCTION (UDF)
CREATE ANALYTIC FUNCTION (UDAnF
CREATE AGGREGATE FUNCTION (UDAF)
・ユーザ定義関数が存在するスキーマの CREATE権限
・ユーザ定義関数が利用しているライブラリの USAGE権限
38DROP FUNCTION DROP TRANSFORM FUNCTION
DROP ANALYTIC FUNCTION
DROP AGGREGATE FUNCTION
・スーパユーザもしくはユーザ定義関数の所有者
・ユーザ定義関数が存在するスキーマの USAGE権限
39ALTER FUNCTION RENAME TO ユーザ定義関数が存在するスキーマの USAGE権限と CREATE権限
40ALTER FUNCTION SET SCHEMA ・現在ユーザ定義関数が存在するスキーマの USAGE権限
・移動先スキーマの CREATE権限
41EXECUTE (SQL/UDF/UDT/ ADAF/UDAnF) function・ユーザ定義関数の EXECUTE権限
・ユーザ定義関数が存在するスキーマの USAGE権限
42シーケンスCREATE SEQUENCE シーケンスが存在するスキーマの CREATE権限
43CREATE TABLE with SEQUENCE・シーケーンスの SELECT権限
・シーケンスが存在するスキーマの USAGE権限
44DROP SEQUENCE シーケンスが存在するスキーマの USAGE権限もしくはスキーマの所有者
45ALTER SEQUENCE RENAME TOスキーマの CREATE権限と USAGE権限
46ALTER SEQUENCE SET SCHEMA ・現在シーケンスが存在するスキーマの USAGE権限
・移動先スキーマの CREATE権限
47CURRVAL()
NEXTVAL()
・シーケンスの SELECT権限
・シーケンスが存在するスキーマの USAGE権限
48リソースプールCREATE RESOURCE POOL スーパユーザのみ可
49ALTER RESOURCE POOL スーパユーザのみ変更可能なパラメータです。
・MAXMEMORYSIZE
・PRIORITY
・QUEUETIMEOUT

リソースプールに対しての UPDATE権限を割当てられたユーザが変更可能なパラメータです。
・PLANNEDCONCURRENCY
・SINGLEINITIATOR
・MAXCONCURRENCY
50SET SESSION RESOURCE_POOL・リソースプールに対しての USAGE権限
・ユーザーは ALTER USER文を使用して独自にリソースプールの設定を変更することができます。
51DROP RESOURCE POOL スーパユーザのみ可
52ユーザCREATE USERスーパユーザのみ可
53ALTER USERスーパユーザのみ可
54DROP USERスーパユーザのみ可
55プロファイルCREATE PROFILEスーパユーザのみ可
56ALTER PROFILEスーパユーザのみ可
57DROP PROFILEスーパユーザのみ可
58ロールCREATE ROLEスーパユーザのみ可
59ALTER ROLE RENAMEスーパユーザのみ可
60DROP ROLEスーパユーザのみ可
61ストレージロケーションCREATE LOCATIONスーパユーザのみ可
62ADD_LOCATIONスーパユーザのみ可
63ALTER_LOCATION_USEスーパユーザのみ可
64RESTORE_LOCATIONスーパユーザのみ可
65DROP_LOCATIONスーパユーザのみ可
66ロケーション先からのファイル読込みロケーションの READ権限
67ロケーション先へのファイル書込みロケーションの WRITE権限
68オブジェクトの可視性スキーマの検索オブジェクトを含むスキーマに対して、少なくとも一つの権限があれば可
69「スキーマ内のオブジェクト」または「システムテーブル」の検索スキーマの USAGE権限

次のオブジェクトに対して、少なくとも一つの権限があれば可:
・TABLE
・VIEW
・FUNCTION
・PROCEDURE
・SEQUENCE
70プロジェクションの検索・プロジェクションのもとになっているすべてのテーブルに対して、少なくとも一つの権限があれば可
・プロジェクションのもとになっているすべてのテーブルが存在スキーマに対しての USAGE権限
71リソースプールの検索リソースプールの SELECT権限
72オブジェクトの検索オブジェクトが存在するスキーマに対しての USAGE権限
73I/O 操作接続/切断なし
74EXPORT TO 「別のVerticaデータベータベース」・ソーステーブルの のSELECT権限
・ソーステーブルが存在するスキーマの USAGE権限
・EXPORT先のターゲットテーブルに対しての INSERT権限
・ターゲットテーブルが存在するスキーマの USAGE権限
75COPY FROM 「別のVerticaデータベータベース」・ソーステーブルの のSELECT権限
・ソーステーブルが存在するスキーマの USAGE権限
・EXPORT先のターゲットテーブルに対しての INSERT権限
・ターゲットテーブルが存在するスキーマの USAGE権限
76COPY FROM ファイルスーパユーザのみ可
77COPY FROM STDIN・テーブルの INSERT権限
・スキーマの USAGE特権
78COPY LOCAL・テーブルの INSERT権限
・スキーマの USAGE特権
79コメントCOMMENT ON { 以下のいずれか }:
・AGGREGATE FUNCTION
・ANALYTIC FUNCTION
・COLUMN
・CONSTRAINT
・FUNCTION
・LIBRARY
・NODE
・PROJECTION
・SCHEMA
・SEQUENCE
・TABLE
・TRANSFORM FUNCTION
・VIEW
オブジェクトの所有者もしくはスーパーユーザ
80トランザクションCOMMITなし
81ROLLBACKなし
82RELEASE SAVEPOINTなし
83SAVEPOINTなし
84セッションSET { 以下のいずれか }:
・DATESTYLE
・ESCAPE_STRING_WARNING
・INTERVALSTYLE
・LOCALE
・ROLE
・SEARCH_PATH
・SESSION AUTOCOMMIT
・SESSION CHARACTERISTICS
・SESSION MEMORYCAP
・SESSION RESOURCE POOL
・SESSION RUNTIMECAP
・SESSION TEMPSPACE
・STANDARD_CONFORMING_STRINGS
・TIMEZONE
なし
85SHOW { 名前 | ALL }なし
86チューニング操作PROFILEPROFILEを使用するクエリと同一の権限が必要
87EXPLAINEXPLAINを使用するクエリと同一の権限が必要


検証バージョンについて

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