Internally stored passwords
DataStax Enterprise (DSE) uses DSE Authenticator to validate user identity against all supported authentication schemes: Internal, LDAP, and Kerberos. Specifically, the Internal authentication scheme stores credentials for a role internally. It is plain text authentication.
DSE uses the dse.yaml configuration settings to set up authentication schemes during initialization. Preconfigure the authentication_options:enabled settings to true, toggling from the default of false. Ensure the authentication_options:default_scheme is set to internal, which is the default. See
authentication_options.
DseAuthenticator is the default in the cassandra.yaml configuration file.
Each user account stored in DSE is a role with a login and password.
The password is stored as a hash.
See adding database users.
For example, the following command shows how a password is stored for a default cassandra user:
select * from system_auth.roles where role = 'cassandra';
Sample results
role | can_login | is_superuser | member_of | salted_hash
-----------+-----------+--------------+-----------+--------------------------------------------------------------
cassandra | True | True | null | $2x$10$XXXXXxx2XxX6Xx532.8xX.xXxXxXxXX5xxxXXxOX3Xx1XxXX3xXX
The password hash uses a random salt to guarantee the password for each user is different. For example, create a user with a test2 role using the same password as the cassandra user. Run the command and compare the hashed passwords.
select * from system_auth.roles;
Sample results
role | can_login | is_superuser | member_of | salted_hash
-----------+-----------+--------------+-----------+--------------------------------------------------------------
test2 | True | False | null | $2z$10$zzZzZ2zZZZz49zZZZzzZZzz4O/Z8Z4zzzzzzZZZZZzZZZZ22zzzZz
cassandra | True | True | null | $2x$10$XXXXXxx2XxX6Xx532.8xX.xXxXxXxXX5xxxXXxOX3Xx1XxXX3xXX