データベース・ロール

ロールを作成して操作する方法。

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ステータスを変更できますが、現在保持されているロールのステータスは変更できません。PASSWORDLOGIN、および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;