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文を使用するときに必要なパーミッションをリストします。
パーミッション | 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;