Adding a superuser login
After enabling role-based access control, create your own superuser login and disable
or drop the default cassandra
login.
After enabling role-based access control, create your own superuser account and
disable or drop the default cassandra
account. Roles created with
the superuser option have full access to the database; users with the role can run
any CQL commands on all database resources.
The DataStax Enterprise database includes the default role cassandra
with password cassandra
. The cassandra
role is a
superuser login account that has full access to the database. Requests from the
cassandra account, including login, use a consistency level of QUORUM. QUORUM may
cause significant performance degradation in multiple datacenter environments. For
security and performance, DataStax recommends only using the cassandra role once
during initial RBAC set up to establish your own root account and then disabling or
dropping the cassandra role.
Prerequisites
Procedure
-
Log in to CQL shell (cqlsh) with the Cassandra user:
cqlsh -u cassandra -p cassandra
-
Create a new superuser account with password stored in the CQL database:
CREATE ROLE root_user_name with SUPERUSER = true AND LOGIN = true and PASSWORD = 'password';
-
Exit cqlsh:
EXIT;
-
In order to disable or drop the cassandra role, log in with the new role
created in the previous step:
cqlsh -u root_user
Enter the password at the prompt.
-
Verify that the role was created as a superuser using :
LIST ROLES;
role | super | login | options ---------------------+-------+-------+--------- root_user | True | True | {} cassandra | True | True | {} (2 rows)
-
Drop or update the cassandra account:
- Drop the cassandra
account:
DROP ROLE cassandra;
- Update the cassandra role by disabling superuser and changing the
password:
ALTER ROLE cassandra WITH SUPERUSER = false AND LOGIN = false AND password='new_secret_pw';
DataStax recommends dropping the account to secure the database in production environments. When using an external authentication method, such as LDAP, this prevents accidentally assignment with elevated privileges. - Drop the cassandra
account:
-
Verify that the cassandra role was deleted:
LIST ROLES;
Only the roles created in these steps display:role | super | login | options ---------------------+-------+-------+--------- root_user | True | True | {} (1 rows)
- Reopen the firewall to support production CQL traffic.
What's next
Set up roles that map to the user or group names for the configured authentication schemes: