GRANT
リソースの権限管理を定義します。
キースペース、テーブル、関数などのデータベース・リソースに対する権限をロールに割り当てます。
重要: パーミッションはアクティブなクライアント・セッションに対しても、即座に適用されます。
構文
GRANT priviledge [ON resource_name] TO role_name
注: ロール名に特殊文字や大文字が含まれている場合は、ロール名を単一引用符で囲んでください。
構文規則 | 説明 |
---|---|
大文字 | リテラル・キーワード。 |
小文字 | リテラル以外。 |
イタリック体 |
変数値。ユーザー定義値と置き換えます。 |
[] |
任意。角かっこ( [] )で任意指定のコマンド引数を囲みます。角かっこは入力しないでください。 |
( ) |
グループ。丸かっこ(( ) )は、選択肢を含むグループを示します。丸かっこは入力しないでください。 |
| |
または。縦棒( | )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。 |
... |
繰り返し可能。省略記号(... )は、構文要素を必要な回数だけ繰り返すことができることを示します。 |
'Literal string' |
単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。 |
{ key : value } |
マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。 |
<datatype1,datatype2> |
セット、リスト、マップ、またはタプル。山かっこ(< > )で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型はコンマで区切ります。 |
cql_statement; |
CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。 |
[--] |
コマンドライン・オプションとコマンド引数は、2つのハイフン(-- )で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。 |
' <schema> ...</schema> ' |
検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。 |
@xml_entity='xml_entity_type' |
検索CQLのみ:スキーマ・ファイルおよびsolrConfigファイル内のXML要素を上書きするための実体とリテラル値を示します。 |
- privilege
-
ロールに付与されたリソースに対するパーミッション。リソース階層のあらゆるレベルで権限を付与します。付与できるすべての権限を次に示します。
- ALL PERMISSIONS
- ALTER
- AUTHORIZE
- CREATE
- DESCRIBE
- DROP
- EXECUTE
- MODIFY
- PROXY.EXECUTE
- PROXY.LOGIN
- SEARCH.ALTER
- SEARCH.COMMIT
- SEARCH.CREATE
- SEARCH.DROP
- SEARCH.REBUILD
- SEARCH.RELOAD
- SELECT
- resource_name
-
パーミッションを適用するDataStax Enterpriseデータベース・オブジェクト。データベース・リソースは階層をモデル化しています。チェーンの上位のリソースに対するパーミッションを付与することで、それより下位のすべてのリソースに対する同じパーミッションが自動的に付与されます。
注: すべての権限がすべての型のリソースに適用されるわけではありません。たとえば、EXECUTE
は、関数、MBean、RPC、および認証スキームに関する場合にのみ有効です。パーミッションが適用されないリソースに対する権限を付与しようとすると、エラーが発生します。使用可能なオブジェクト:
- 関数
-
- ALL FUNCTIONS
- ALL FUNCTIONS IN KEYSPACE keyspace_name
- FUNCTION keyspace_name.function_name
- ALL FUNCTIONS IN KEYSPACE keyspace_name
- ALL FUNCTIONS
- データ
-
- ALL KEYSPACES
- KEYSPACE keyspace_name
- TABLE table_name
- Rows ('filtering_data' ROWS IN table_name )
- Indexes(検索インデックス以外)は、テーブルに属しますが、パーミッションを直接割り当てることはできません。テーブルに対するALTERパーミッションがある場合、ユーザーはインデックスのCREATEおよびDROPを実行できます。
- Typesはキースペースに属しますが、パーミッションを直接割り当てることはできません。型を管理するには、キースペース・パーミッションをCREATE、DROP、ALTERのいずれかに設定します。これにより、テーブルについても同じパーミッションがユーザーに付与されます。
- TABLE table_name
- KEYSPACE keyspace_name
- ALL KEYSPACES
- 検索インデックス
-
- ALL SEARCH INDICES
- SEARCH INDICES [keyspace_name.]table_name
- ALL SEARCH INDICES
- JMX
-
- ALL MBEANS
- MBEAN mbean_name
- MBEANS pattern
- MBEAN mbean_name
- ALL MBEANS
- ロール
-
- ALL ROLES
- ROLE role_name
注: ロールは、割り当て可能なパーミッション・セットであるとともに、データベース・リソースでもあります。GRANT role_name TO role_name
では、文の最初のロールのパーミッションがすべて2番目のロールにも付与されます。独自のパーミッション階層構造を作成するには、ロールを使用してください。
- ALL ROLES
- リモート・プロシージャ・コール(RPC)
-
- ALL OBJECTS
- OBJECT object_name
- METHOD
- OBJECT object_name
- ALL OBJECTS
- 認証スキーム
-
- ALL SCHEMES
- (LDAP | KERBEROS | INTERNAL) SCHEME
- ALL SCHEMES
- Sparkアプリケーション
-
アプリケーションの送信:
- ANY WORKPOOL
- WORKPOOL datacenter_name
アプリケーションの管理:- ANY SUBMISSION
- ANY SUBMISSION IN WORKPOOL datacenter_name
- SUBMISSION application_ID IN WORKPOOL datacenter_name
- ANY WORKPOOL
アクセス制御マトリックス
次の表は、権限とリソースの関係を示し、結果のパーミッションについて説明します。
リソースの型 | 権限 | リソース | パーミッション |
---|---|---|---|
データ | ALL PERMISSIONS | resource_name | リソースとその祖先に適用可能なすべての操作。リソース名を以下にリストします。 |
データ | ALTER | ALL KEYSPACES | 任意のキースペース内のALTER KEYSPACE、ALTER TABLE、ALTER TYPE、RESTRICT ROW。 |
データ | ALTER | KEYSPACE keyspace_name | 指定したキースペース内のALTER KEYSPACE、ALTER TABLE、ALTER TYPE、RESTRICT ROW。 |
データ | ALTER | TABLE table_name | 指定したテーブルのALTER TABLEおよびRESTRICT ROW。 |
データ | CREATE | ALL KEYSPACES | 任意のキースペース内のCREATE KEYSPACE、CREATE TABLE、CREATE FUNCTIONS、CREATE TYPE。 |
データ | CREATE | KEYSPACE keyspace_name | 指定したキースペース内のCREATE TABLEおよびCREATE TYPE。 |
データ | DROP | ALL KEYSPACES | 任意のキースペース内のDROP KEYSPACE、DROP TABLE、DROP TYPE。 |
データ | DROP | KEYSPACE keyspace_name | 指定したキースペース内のDROP TABLEおよびDROP TYPE。 |
データ | DROP | TABLEtable_name | 指定したDROP TABLE。 |
データ | MODIFY | 'filtering_data' ROWS IN table_name | 指定したテーブル内の'filtering_data'と完全に一致する行に対するMODIFY。 |
データ | MODIFY | ALL KEYSPACES | 任意のテーブルに対するINSERT、UPDATE、DELETE、TRUNCATE。 |
データ | MODIFY | KEYSPACE keyspace_name | 指定したキースペース内の任意のテーブルに対するINSERT、UPDATE、DELETE、TRUNCATE。 |
データ | MODIFY | TABLE table_name | 指定したテーブルに対するINSERT、UPDATE、DELETE、TRUNCATE。 |
データ | SELECT | 'filtering_data' ROWS IN table_name | 指定したテーブル内の'filtering_data'と完全に一致する行に対するSELECT。 |
データ | SELECT | ALL KEYSPACES | 任意のテーブルに対するSELECT。 |
データ | SELECT | KEYSPACE keyspace_name | 指定したキースペース内の任意のテーブルに対するSELECT。 |
データ | SELECT | TABLE table_name | 指定したテーブルに対するSELECT。 |
関数 | ALTER | ALL FUNCTIONS | CREATE FUNCTIONおよびCREATE AGGREGATE。既存の値も置き換えます。 |
関数 | ALTER | ALL FUNCTIONS IN KEYSPACE keyspace_name | CREATE FUNCTIONおよびCREATE AGGREGATE。指定したキースペース内の既存の値も置き換えます。 |
関数 | ALTER | FUNCTION function_name | CREATE FUNCTIONおよびCREATE AGGREGATE。既存の値も置き換えます。 |
関数 | CREATE | ALL FUNCTIONS | 任意のキースペース内のCREATE FUNCTIONおよびCREATE AGGREGATE。 |
関数 | CREATE | ALL FUNCTIONS IN KEYSPACE keyspace_name | 指定したキースペース内のCREATE FUNCTIONおよびCREATE AGGREGATE。 |
関数 | DROP | ALL FUNCTIONS | 任意のキースペース内のDROP FUNCTIONおよびDROP AGGREGATE。 |
関数 | DROP | ALL FUNCTIONS IN KEYSPACE keyspace_name | 指定したキースペース内のDROP FUNCTIONおよびDROP AGGREGATE。 |
関数 | DROP | FUNCTION function_name | 指定した関数に対するDROP FUNCTION。 |
関数 | EXECUTE | ALL FUNCTIONS | 任意の関数を使用したSELECT、INSERTおよびUPDATEと、CREATE AGGREGATEでの任意の関数の使用。 |
関数 | EXECUTE | ALL FUNCTIONS IN KEYSPACE keyspace_name | 指定したキースペース内の任意の関数を使用したSELECT、INSERTおよびUPDATEと、CREATE AGGREGATEでのキースペース内の任意の関数の使用。 |
関数 | EXECUTE | FUNCTION function_name | 指定した関数を使用したSELECT、INSERTおよびUPDATEと、CREATE AGGREGATEでの関数の使用。 |
JMX | DESCRIBE | ALL MBEANS | プラットフォームのMBeanServerから任意のmbeanに関するメタデータを取得します。 |
JMX | DESCRIBE | MBEAN mbean_name | プラットフォームのMBeanServerから指定した名前のmbeanに関するメタデータを取得します。 |
JMX | DESCRIBE | MBEANS pattern | プラットフォームのMBeanServerからワイルドカード・パターンと一致する任意のmbeanに関するメタデータを取得します。 |
JMX | EXECUTE | ALL MBEANS | 任意のmbeanに対して操作を実行します。 |
JMX | EXECUTE | MBEAN mbean_name | 指定したmbeanに対して操作を実行します。 |
JMX | EXECUTE | MBEANS pattern | ワイルドカード・パターンに一致する任意のmbeanに対して操作を実行します。 |
JMX | MODIFY | ALL MBEANS | 任意のmbeanに対してsetterメソッドを呼び出します。 |
JMX | MODIFY | MBEAN mbean_name | 指定したmbeanに対してsetterメソッドを呼び出します。 |
JMX | MODIFY | MBEANS pattern | ワイルドカード・パターンに一致する任意のmbeanに対してsetterメソッドを呼び出します。 |
JMX | SELECT | ALL MBEANS | 任意のmbeanに対してgetterメソッドを呼び出します。 |
JMX | SELECT | MBEAN mbean_name | 指定したmbeanに対してgetterメソッドを呼び出します。 |
JMX | SELECT | MBEANS pattern | ワイルドカード・パターンに一致する任意のmbeanに対してgetterメソッドを呼び出します。 |
ロール管理 | ALTER | ALL ROLES | 任意のロールに対するALTER ROLE。 |
ロール管理 | ALTER | ROLE role_name | 指定したロールに対するALTER ROLE。 |
ロール管理 | AUTHORIZE | resource_name | リソースに対するGRANT権限とREVOKE権限。 注: ロールはリソースです。ユーザーにリソースに対するAUTHORIZEが必要です。 |
ロール管理 | CREATE | ALL ROLES | CREATE ROLE |
ロール管理 | DESCRIBE | ALL ROLES | すべてのロール、他のロールに付与されているロールのみ、または指定したロールに対するLIST権限。 |
ロール管理 | DROP | ALL ROLES | 任意のロールに対するDROP ROLE。 |
ロール管理 | DROP | ROLE role_name | 指定したロールに対するDROP ROLE。 |
ロール管理 | PROXY.EXECUTE | ROLE role_name | 認証後、個々の要求を別のユーザーとして発行します。 |
ロール管理 | PROXY.LOGIN | ROLE role_name | 認証後、すべての要求を別のユーザーとして発行します。 |
ロール管理 | role_name | resource_name | 別のロールにロールを(パーミッションのセットとして)付与します。パーミッション・ロールとターゲット・ロールに対するAUTHORIZEパーミッションが必要です。 |
検索インデックス | ALL PERMISSIONS | ALL SEARCH INDICES | システム全体のすべての検索インデックスについてのすべての検索インデックス権限。 |
検索インデックス | SEARCH.ALTER | ALL SEARCH INDICES | すべてのキースペース内のすべてのテーブルに対するALTER SEARCH INDEX。 |
検索インデックス | SEARCH.ALTER | SEARCH INDEX [keyspace_name.]table_name | 指定したテーブルに対するALTER SEARCH INDEX。 |
検索インデックス | SEARCH.COMMIT | ALL SEARCH INDICES | すべてのキースペース内のすべてのテーブルに対するCOMMIT SEARCH INDEX。 |
検索インデックス | SEARCH.COMMIT | SEARCH INDEX [keyspace_name.]table_name | 指定したテーブルに対するCOMMIT SEARCH INDEX。 |
検索インデックス | SEARCH.CREATE | ALL SEARCH INDICES | すべてのキースペース内のすべてのテーブルに対するCREATE SEARCH INDEX。 |
検索インデックス | SEARCH.CREATE | SEARCH INDEX [keyspace_name.]table_name | 指定したテーブルに対するCREATE SEARCH INDEX。 |
検索インデックス | SEARCH.DROP | SEARCH INDEX [keyspace_name.]table_name | 指定したテーブルに対するDROP SEARCH INDEX。 |
検索インデックス | SEARCH.REBUILD | ALL SEARCH INDICES | すべてのキースペース内の任意のテーブルに対するREBUILD SEARCH INDEX。 |
検索インデックス | SEARCH.REBUILD | SEARCH INDEX [keyspace_name.]table_name | 指定したテーブルに対するREBUILD SEARCH INDEX。 |
検索インデックス | SEARCH.RELOAD | ALL SEARCH INDICES | すべてのキースペース内のすべてのテーブルに対するRELOAD SEARCH INDEX。 |
検索インデックス | SEARCH.RELOAD | SEARCH INDEX [keyspace_name.]table_name | 指定したテーブルに対するRELOAD SEARCH INDEX。 |
Sparkアプリケーション | CREATE | ANY WORKPOOL | 任意のデータ・センター内のワークプールにアプリケーションを送信します。 |
Sparkアプリケーション | CREATE | WORKPOOL datacenter_name | 指定したデータ・センター内のワークプールにアプリケーションを送信します。 |
Sparkアプリケーション | MODIFY | ANY SUBMISSION | すべてのデータ・センターで任意のアプリケーションを管理します。 |
Sparkアプリケーション | MODIFY | ANY SUBMISSION IN WORKPOOL datacenter_name | 指定したデータ・センターでアプリケーションを管理します。 |
Sparkアプリケーション | MODIFY | SUBMISSION application_ID IN WORKPOOL datacenter_name | 指定したデータ・センターで1つのアプリケーションを管理します。 |
例
ほとんどの環境では、ユーザー認証はLDAPなどの外部ディレクトリー・サービスに照らしてユーザー認証情報を確認するプラグインによって処理されます。CQLロールは、ロール名をグループ名と照合することで外部グループにマップされます。簡潔にするため、以下の例では内部ユーザーを使用します。
すべてのキースペースのすべてのテーブルを対象とした
SELECT
クエリーを実行するパーミッションをcoachロールに付与します。GRANT SELECT ON ALL KEYSPACES TO coach;
fieldキースペース内のすべてのテーブルに対して
INSERT
クエリー、UPDATE
クエリー、DELETE
クエリーおよびTRUNCATE
クエリーを実行するパーミッションをmanagerロールに付与します。GRANT MODIFY ON KEYSPACE field TO manager;
cyclingキースペースに対して
ALTER KEYSPACE
クエリーを実行し、cyclingキースペース内のすべてのテーブルに対してALTER TABLE
クエリー、CREATE INDEX
クエリーおよびDROP INDEX
クエリーを実行するパーミッションをcoachロールに付与します。GRANT ALTER ON KEYSPACE cycling TO coach;
cycling.nameテーブルに対してすべての種類のクエリーを実行するパーミッションをcoachロールに付与します。
GRANT ALL PERMISSIONS ON cycling.name TO coach;
cyclingへのフルアクセス権を持つ管理者ロールを作成します。
GRANT ALL ON KEYSPACE cycling TO cycling_admin;
sponsorテーブルのcyclingキースペース内で'SPONSORED'を含む行に対してSELECTを実行するパーミッションをsponsorロールに付与します。
GRANT SELECT ON 'SPONSORED' ROWS IN cycling.rank TO sponsor;
注: filtering_dataでは大文字と小文字が区別されます。
パーミッションを表示するには、以下のように入力します。
LIST ALL PERMISSIONS