GRANT

リソースの権限管理を定義します。

キースペース、テーブル、関数などのデータベース・リソースに対する権限をロールに割り当てます。

重要: パーミッションはアクティブなクライアント・セッションに対しても、即座に適用されます。

構文

GRANT priviledge
[ON resource_name]
TO role_name
注: ロール名に特殊文字や大文字が含まれている場合は、ロール名を単一引用符で囲んでください。
表 1. 凡例
構文規則 説明
大文字 リテラル・キーワード。
小文字 リテラル以外。
イタリック体 変数値。ユーザー定義値と置き換えます。
[] 任意。角かっこ( [] )で任意指定のコマンド引数を囲みます。角かっこは入力しないでください。
( ) グループ。丸かっこ(( ))は、選択肢を含むグループを示します。丸かっこは入力しないでください。
| または。縦棒( | )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。
... 繰り返し可能。省略記号(...)は、構文要素を必要な回数だけ繰り返すことができることを示します。
'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 KEYSPACES
    • KEYSPACE keyspace_name
      • TABLE table_name
        • Rows ('filtering_data' ROWS IN table_name )
        • Indexes(検索インデックス以外)は、テーブルに属しますが、パーミッションを直接割り当てることはできません。テーブルに対するALTERパーミッションがある場合、ユーザーはインデックスのCREATEおよびDROPを実行できます。
      • Typesはキースペースに属しますが、パーミッションを直接割り当てることはできません。型を管理するには、キースペース・パーミッションをCREATE、DROP、ALTERのいずれかに設定します。これにより、テーブルについても同じパーミッションがユーザーに付与されます。
検索インデックス
  • ALL SEARCH INDICES
    • SEARCH INDICES [keyspace_name.]table_name
JMX
  • ALL MBEANS
    • MBEAN mbean_name
      • MBEANS pattern
ロール
  • ALL ROLES
    • ROLE role_name
    注: ロールは、割り当て可能なパーミッション・セットであるとともに、データベース・リソースでもあります。GRANT role_name TO role_nameでは、文の最初のロールのパーミッションがすべて2番目のロールにも付与されます。独自のパーミッション階層構造を作成するには、ロールを使用してください。
リモート・プロシージャ・コール(RPC)
  • ALL OBJECTS
    • OBJECT object_name
      • METHOD
認証スキーム
  • ALL SCHEMES
    • (LDAP | KERBEROS | INTERNAL) SCHEME
Sparkアプリケーション
アプリケーションの送信:
  • ANY WORKPOOL
    • WORKPOOL datacenter_name
アプリケーションの管理:
  • ANY SUBMISSION
    • ANY SUBMISSION IN WORKPOOL datacenter_name
    • SUBMISSION application_ID IN WORKPOOL datacenter_name

アクセス制御マトリックス

次の表は、権限とリソースの関係を示し、結果のパーミッションについて説明します。

リソースの型 権限 リソース パーミッション
データ 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