データへのアクセスの制限

特権が直接付与された場合や継承された場合、またはスーパーユーザー・ロールであっても、リソースに対するパーミッションを拒否します。

RESTRICTコマンドは、ロールのリソースに対するパーミッションを拒否します。ロールがスーパーユーザーであっても、特権がロールに直接付与されているか、または継承された場合でも、ユーザーはアクセスを拒否されます。UNRESTRICTを使用して、ロールがデータベース・リソースに対して持つ制限を削除します。

スーパーユーザー・ロールには、データベースへのフル・アクセス権があります。restrictを使用して、データベース・リソースとロールを管理できるが、データを表示または変更できないデータベース管理者アカウントを作成します。

注: GRANTおよびREVOKEは、UNRESTRICTであるデータベース・リソースへのアクセスのみを許可します。

手順

  1. スーパーユーザー・ロールでCQLSHにログインします。
    cqlsh -u username
    注意: デフォルトのロールcassandraでログインすると、パフォーマンスに影響するか、失敗する可能性があります。ログインを含むすべての要求は、整合性QUORUMで実行されます。
  2. ログインを有効にしてスーパーユーザー・アカウントを作成します。
    CREATE ROLE db_admin 
    WITH superuser = true AND login = true 
    AND password = 'anypasswordwilldo';
    注: 内部アカウントにはパスワードが必要ですが、LDAPやKerberosにはパスワードは必要ありません。
  3. ロールが循環キースペースのデータにアクセスすることを制限します。
    RESTRICT MODIFY, SELECT ON KEYSPACE cycling TO db_admin;
  4. 制限を確認します。
    SELECT role, resource, restricted FROM system_auth.role_permissions 
    WHERE role = 'db_admin';
    結果は、ロールに対して拒否されたパーミッションを示します。
     role     | resource     | restricted
    ----------+--------------+----------------------
     db_admin | data/cycling | {'MODIFY', 'SELECT'}
    
    (1 rows)