ロールを作成して操作する方法。
Cassandra 2.2以降では、ロールベースのアクセス制御が利用できます。ロールにより、ユーザーごとのセキュリティよりも大規模な権限管理が実行できるようになります。ロールは、作成され、ユーザーまたは他のロールに付与されます。パーミッションの階層構造の集合を作成することができます。詳細については、「Role Based Access Control in Cassandra」を参照してください。
手順
-
パスワードを持つロールを作成します。以前のロールの定義が上書きされないように、
IF NOT EXISTS
が含まれています。
cqlsh> CREATE ROLE IF NOT EXISTS team_manager WITH PASSWORD = 'RockIt4Us!';
-
LOGIN
権限やSUPERUSER
権限を持つロールを作成します。LOGIN
により、クライアントは接続時にこのロールを識別できます。SUPERUSER
は、無条件でロールを作成する権限を付与します。
cqlsh> CREATE ROLE sys_admin WITH PASSWORD = 'IcanDoIt4ll' AND LOGIN = true AND SUPERUSER = true;
-
オプションを変更するには、ロールを変更します。
SUPERUSER
ステータスのロールは、別のロールのSUPERUSER
ステータスを変更できますが、現在保持されているロールのステータスは変更できません。PASSWORD
、LOGIN
、およびSUPERUSER
は、ALTER ROLE
で変更できます。ロールのプロパティを変更するには、ユーザーはパーミッションが必要です。
cqlsh> ALTER ROLE sys_admin WITH PASSWORD = 'All4one1forAll' AND SUPERUSER = false;
-
ロールをユーザーまたはロールに付与します。
cqlsh> GRANT sys_admin TO team_manager; GRANT team_manager TO sandy;
-
ユーザーのロールをリストします。
cqlsh> LIST ROLES; LIST ROLES OF sandy;
注: NORECURSIVE
は、ユーザーに直接付与されたすべてのロールを検出するオプションです。NORECURSIVE
なしに、過渡的に取得されたロールもリストされます。
-
以前にユーザーまたはロールに付与されたロールを取り消します。ロールから派生したパーミッションはすべて取り消されます。
cqlsh> REVOKE sys_admin FROM team_manager; REVOKE team_manager FROM sandy;
-
現在のロールではないロールを削除します。ユーザーは
SUPERUSER
である必要があります。
DROP ROLE IF EXISTS sys_admin;