キースペースとテーブルへのアクセスを制御する

キースペースとテーブルへのアクセスの管理方法に関する例を示します。

CQL GRANTおよびREVOKEコマンドを使用して、キースペースとテーブルにアクセスするロールを承認します。キースペース、テーブル、および行は階層的です。キースペースなどの最上位レベルのオブジェクトにアクセスする権限を持つロールには、その子オブジェクト(テーブルと行)に対する権限が自動的に付与されます。

DataStax Enterpriseは、パーミッションを取り消す以下のCQL構文をcqlshでサポートしています。
REVOKE permission_name ON resource_name FROM role_name; 

手順

  • すべてのキースペースのすべてのパーミッションが付与されているロールを作成します。
    CREATE ROLE keyspace_admin;
    GRANT ALL PERMISSIONS ON ALL KEYSPACES TO keyspace_admin;
  • 1つのキースペースの管理者ロールを作成します。
    CREATE ROLE cycling_admin;
    GRANT ALL PERMISSIONS IN KEYSPACE cycling to cycling_admin;
  • キースペースcycling内の任意のテーブルに対してデータの変更のみ(INSERT、UPDATE、DELETE、およびTRUNCATE)を実行できるロールを作成します。
    GRANT MODIFY ON KEYSPACE cycling TO team_manager;
  • cyclingキースペース内でデータを選択して関数を使用することのみが可能なロールを作成します。
    CREATE ROLE cyclist_analyst;
    GRANT SELECT ON KEYSPACE cycling TO cyclist_analist;
    GRANT EXECUTE ON ALL FUNCTIONS IN KEYSPACE cycling to cyclist_analist;