データへのアクセスの制限
特権が直接付与された場合や継承された場合、またはスーパーユーザー・ロールであっても、リソースに対するパーミッションを拒否します。
RESTRICTコマンドは、ロールのリソースに対するパーミッションを拒否します。ロールがスーパーユーザー
であっても、特権がロールに直接付与されているか、または継承された場合でも、ユーザーはアクセスを拒否されます。UNRESTRICTを使用して、ロールがデータベース・リソースに対して持つ制限を削除します。
スーパーユーザー
・ロールには、データベースへのフル・アクセス権があります。restrictを使用して、データベース・リソースとロールを管理できるが、データを表示または変更できないデータベース管理者アカウントを作成します。
手順
-
スーパーユーザー
・ロールでCQLSHにログインします。cqlsh -u username
注意: デフォルトのロールcassandra
でログインすると、パフォーマンスに影響するか、失敗する可能性があります。ログインを含むすべての要求は、整合性QUORUM
で実行されます。 -
ログインを有効にしてスーパーユーザー・アカウントを作成します。
CREATE ROLE db_admin WITH superuser = true AND login = true AND password = 'anypasswordwilldo';
注: 内部アカウントにはパスワードが必要ですが、LDAPやKerberosにはパスワードは必要ありません。 -
ロールが循環キースペースのデータにアクセスすることを制限します。
RESTRICT MODIFY, SELECT ON KEYSPACE cycling TO db_admin;
-
制限を確認します。
SELECT role, resource, restricted FROM system_auth.role_permissions WHERE role = 'db_admin';
結果は、ロールに対して拒否されたパーミッションを示します。role | resource | restricted ----------+--------------+---------------------- db_admin | data/cycling | {'MODIFY', 'SELECT'} (1 rows)