Accumulo has authentication to verify the identity of users.
Configuration
Accumulo can be configured to use different authentication methods:
| Method | Setting for instance.security.authenticator |
|---|---|
| Password (default) | org.apache.accumulo.server.security.handler.ZKAuthenticator |
| Kerberos | org.apache.accumulo.server.security.handler.KerberosAuthenticator |
All authentication methods implement Authenticator. The default (password-based) implementation method is described in this document.
Root user
When Accumulo is initialized, a root user is created and given a password. This root user is used to create other users.
Creating users
Users can be created in the shell:
root@uno> createuser bobEnter new password for 'bob': ****Please confirm new password for 'bob': ****
In the Java API using SecurityOperations:
client.securityOperations().createLocalUser("bob", new PasswordToken("pass"));
Authenticating users
Users are authenticated when they create an Accumulo client or when they log in to the Accumulo shell.
Authentication can also be tested in the shell:
root@myinstance mytable> authenticate bobEnter current password for 'bob': ****Valid
In the Java API using SecurityOperations:
boolean valid = client.securityOperations().authenticateUser("bob", new PasswordToken("pass"));
Changing user passwords
A user’s password can be changed in the shell:
root@uno> passwd -u bobEnter current password for 'root': ******Enter new password for 'bob': ***
In the Java API using SecurityOperations:
client.securityOperations().changeLocalUserPassword("bob", new PasswordToken("pass"));
Removing users
Users can be removed in the shell:
root@uno> dropuser bobdropuser { bob } (yes|no)? yes
In the Java API using SecurityOperations:
client.securityOperations().dropLocalUser("bob");
