Note
The SimpleAuthenticator and SimpleAuthority classes have been moved to the example directory of the Apache Cassandra project repository as of release 1.0. They are no longer available in the packaged and binary distributions. They never provided actual security, and in their current state are only meant as examples.
Using authentication and authorization requires configuration changes in cassandra.yaml and two additional files: one for assigning users and their permissions to keyspaces and column families, and the other for assigning passwords to those users. These files are named access.properties and passwd.properties, respectively, and are located in the examples directory of the Apache Cassandra project repository. To test simple authentication, you can move these files to the conf directory.
To set up simple authentication and authorization
cd <install_location>
sh bin/cassandra -f -Dpasswd.properties=conf/passwd.properties -Daccess.properties=conf/access.properties
This file contains entries in the format KEYSPACE[.COLUMNFAMILY].PERMISSION=USERS where
For example, to control access to Keyspace1 and give jsmith and Elvis read-only permissions while allowing dilbert full read-write access to add and remove column families, you would create the following entries:
Keyspace1.<ro>=jsmith,Elvis Presley
Keyspace1.<rw>=dilbert
To provide a finer level of access control to the Standard1 column family in Keyspace1, you would create the following entry to allow the specified users read-write access:
Keyspace1.Standard1.<rw>=jsmith,Elvis Presley,dilbert
The access.properties file also contains a simple list of users who have permissions to modify the list of keyspaces:
<modify-keyspaces>=jsmith
This file contains name/value pairs in which the names match users defined in access.properties and the values are user passwords. Passwords are in clear text unless the passwd.mode=MD5 system property is provided.
jsmith=havebadpass
Elvis Presley=graceland4ever
dilbert=nomoovertime