GRANT

データベース・リソースへのアクセスを許可します。

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

重要: パーミッションはアクティブなクライアント・セッションに対しても、即座に適用されます。
制約事項: 認証および権限管理を有効にして、データベース・リソースへのアクセスを制御します。「DSE Unified Authentication(DSE統合認証)の有効化」を参照してください。

構文

GRANT permission
  ON object
  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要素を上書きするための実体とリテラル値を示します。
permission

データ・リソースに関してロールに付与されているアクセスの種類。ALL PERMISSIONSまたはパーミッションのコンマ区切りリスト。

パーミッションは、以下のように固有のリソースです。

  • データ - ALL PERMISSIONSまたはALTERAUTHORIZE [FOR permission_list]CREATEDESCRIBEDROPMODIFY、およびSELECT
  • 関数(および集計) - ALL PERMISSIONSまたはALTERAUTHORIZE [FOR permission_list]CREATE、およびDROP
  • 検索インデックス - AUTHORIZE [FOR permission_list]SEARCH.ALTERSEARCH.COMMITSEARCH.CREATESEARCH.DROPSEARCH.REBUILD、およびSEARCH.RELOAD
  • ロール - ALL PERMISSIONSまたはALTERAUTHORIZE [FOR permission_list]CREATEDESCRIBEDROPPROXY.EXECUTE、およびPROXY.LOGIN
  • JMX (MBeans) - ALL PERMISSIONSまたはAUTHORIZE [FOR permission_list]DESCRIBEEXECUTEMODIFY、およびSELECT
  • リモート・プロシージャ・コール(RPC) - ALL PERMISSIONSまたはAUTHORIZE [FOR permission_list]EXECUTEMODIFY、およびSELECT
  • 認証スキーム - ALL PERMISSIONSまたはAUTHORIZE [FOR permission_list]およびEXECUTE
  • Sparkワークプール - ALL PERMISSIONSまたはAUTHORIZE [FOR permission_list]CREATE、およびDESCRIBE
  • Sparkサブミット - ALL PERMISSIONSまたはAUTHORIZE [FOR permission_list]DESCRIBE、およびMODIFY
注: アクセス制御を管理するには、パーミッションの種類に関して、そのリソースのAUTHORIZEパーミッションがロールに含まれている必要があります。FOR パーミッションを指定せずにAUTHORIZEが付与されている場合、そのロールはオブジェクトのすべてのパーミッションを管理できます。
resource_name
パーミッションを適用するDataStax Enterpriseデータベース・オブジェクト。データベース・リソースは階層をモデル化しており、最上位オブジェクトのパーミッションによって、オブジェクトの祖先の同じパーミッションがロールに付与されます。以下のキーワードを使用してリソースを識別します。
  • データ - ALL KEYSPACES > KEYSPACE keyspace_name > TABLE table_name > 'filtering_data' ROWS IN table_name
  • 関数(集計を含む) - ALL FUNCTIONSALL FUNCTIONS IN KEYSPACE keyspace_name、およびFUNCTION keyspace_name.function_name( argument_types)
  • 検索インデックス - ALL SEARCH INDICES > SEARCH KEYSPACE keyspace_name > SEARCH INDICES [keyspace_name.]table_name
  • JMX MBeans - ALL MBEANS > MBEAN mbean_nameおよびMBEANS pattern
  • リモート・プロシージャ・コール(RPC) - ALL REMOTE CALLS > REMOTE METHOD name | REMOTE OBJECT name
  • ロール - ALL ROLES > ROLE role_name
  • 認証スキーム - ALL SCHEMES > LDAP | KERBEROS | INTERNAL
  • 分析アプリケーション
    • ワークプール - ANY WORKPOOL > WORKPOOL 'dc_name.*' > WORKPOOL 'dc_name.workpool_name'
    • サブミット - ANY SUBMISSION > ANY SUBMISSION IN WORKPOOL 'datacenter_name.*' > 'datacenter_name.workpool_name' > SUBMISSION ID

ほとんどの環境では、ユーザー認証はLDAPなどの外部ディレクトリー・サービスに照らしてユーザー認証情報を確認するプラグインによって処理されます。簡潔にするため、以下の例では内部ユーザーを使用します。

オブジェクト・パーミッションの管理

AUTHORIZEを使用して、ロールが特定のリソースのアクセス制御を管理できるようにします。
  • cyclingキースペース内のすべてのオブジェクトについて、AUTHORIZEを含むすべてのパーミッション・タイプをロールが付与できるようにします。
    GRANT AUTHORIZE ON KEYSPACE cycling TO cycling_admin;
    警告: これによって、ロールは、そのロールのパーミッションと、継承するロールを変更できるようになるため、cyclingキースペースにおけるスーパーユーザーになります。
  • samロールは、クエリーを実行し、cyclingキースペース内のデータを変更するパーミッションを割り当てることができます。
    GRANT AUTHORIZE FOR SELECT, MODIFY ON KEYSPACE cycling TO sam;
    ヒント: samロールは、AUTHORIZE, AUTHORIZE FOR ...ALTERCREATEDESCRIBE、およびDROPなどの他のパーミッションを別のロールに付与することはできません。

データ・リソースへのアクセス

データ・リソース・パーミッションを使用して、キースペース、テーブル、行、および型へのアクセスを管理します。

cyclingキースペースへのすべてのパーミッションをcycling_adminロールに付与します。
GRANT ALL PERMISSIONS ON KEYSPACE cycling TO cycling_admin;
cyclingキースペースのすべてのテーブルに対してSELECT文を実行し、データを変更するパーミッションをcoachロールに付与します。
GRANT SELECT, MODIFY ON KEYSPACE cycling TO coach;
cyclingキースペースに対してALTER KEYSPACE文を実行し、cyclingキースペース内のすべてのテーブルに対してALTER TABLE文、CREATE INDEX文、およびDROP INDEX文を実行するパーミッションをcoachロールに付与します。
GRANT ALTER ON KEYSPACE cycling TO coach;
cycling.cyclist_categoryテーブルに'Sprint’を含んでいる行に対してSELECT文を実行するパーミッションをmartinロールに付与します。
GRANT SELECT ON 'Sprint' ROWS IN cycling.cyclist_category TO martin;
注: filtering_dataの文字列では大文字と小文字が区別されます。

パーミッションを表示するには、「パーミッションのリスト」を参照してください。