GRANT

データベース・オブジェクトへのアクセスを許可します。

データベース・オブジェクトへのアクセスを許可します。

構文

GRANT permission_name PERMISSION |(GRANT ALL PERMISSIONS)ON resource TO user_name | role_name

permission_nameは以下のいずれかです。

  • ALL
  • ALTER
  • AUTHORIZE
  • CREATE
  • DROP
  • MODIFY
  • SELECT

resourceは以下のいずれかです。

  • ALL KEYSPACES
  • KEYSPACE keyspace_name
  • TABLE keyspace_name.table_name

構文の凡例

  • 大文字はリテラルを意味する
  • 小文字は、リテラルでないことを意味する
  • イタリック体は指定が任意であることを意味する
  • パイプ(|)記号はORまたはAND/ORを意味する
  • 省略記号(...)は繰り返し可能を意味する
  • 範囲記号「(」および「)」はリテラルではなく、範囲を示す

この構文には、CQL文の終了となるセミコロンは含まれていません。

説明

すべてのキースペース、指定のキースペース、またはテーブルにアクセスするパーミッションをユーザーまたはロールに付与することができます。ユーザー名またはロール名に英数字以外の文字が含まれている場合は、名前を単一引用符で囲んでください。

以下の表に、CQL文を使用するときに必要なパーミッションをリストします。

表 1. CQLパーミッション
パーミッション CQL文
ALL すべての文
ALTER ALTER KEYSPACE、ALTER TABLE、CREATE INDEX、DROP INDEX
AUTHORIZE GRANT、REVOKE
CREATE CREATE KEYSPACE、CREATE TABLE
DROP DROP KEYSPACE、DROP TABLE
MODIFY INSERT、DELETE、UPDATE、TRUNCATE
SELECT SELECT

テーブルを対象にSELECTクエリーを実行できるようにするには、テーブル、親キースペース、または全キースペース(ALL KEYSPACE)を対象とするSELECTパーミッションを持つ必要があります。CREATE TABLEを可能にするには、親キースペースまたはALL KEYSPACESを対象とするCREATEパーミッションが必要です。ユーザーを対象にパーミッションをGRANT(付与)またはREVOKE(取り消し)するには、スーパーユーザーであるか、リソース(または階層内のいずれかの親)を対象としたAUTHORIZEパーミッションに加えて、対象となるパーミッションを持っている必要があります。GRANT、REVOKE、およびLISTパーミッションは、実行の前に、テーブルとキースペースが存在することをチェックします。GRANTとREVOKEはユーザーが存在することをチェックします。

すべてのキースペースのすべてのテーブルを対象としたSELECTクエリーを実行するパーミッションをspillmanに付与します。

GRANT SELECT ON ALL KEYSPACES TO spillman;

fieldキースペースのすべてのテーブルを対象としたINSERT、UPDATE、DELETE、およびTRUNCATEクエリーを実行するパーミッションをakersに付与します。

GRANT MODIFY ON KEYSPACE field TO akers;

forty9ersキースペースを対象としたALTER KEYSPACEクエリーの実行と、forty9ersキースペースのすべてのテーブルを対象としたALTER TABLE、CREATE INDEX、およびDROP INDEXクエリーの実行のパーミッションをbooneに付与します。

GRANT ALTER ON KEYSPACE forty9ers TO boone;

ravens.playsテーブルですべての種類のクエリーを実行するパーミッションをbooneに付与します。

GRANT ALL PERMISSIONS ON ravens.plays TO boone;

ravens.playsテーブルですべての種類のクエリーを実行するパーミッションをcoachロールに付与します。

GRANT ALL PERMISSIONS ON ravens.plays TO coach;

ほかの誰もALL KEYSPACESアクセス権を持っていないものとして、ただ1人のユーザーにキースペースへのアクセス権を付与します。

GRANT ALL ON KEYSPACE keyspace_name TO user_name;