# vertica_user – Adds or removes Vertica database users and assigns roles

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Status

## Synopsis

- Adds or removes Vertica database user and, optionally, assigns roles.

- A user will not be removed until all the dependencies have been dropped.

- In such a situation, if the module tries to remove the user it will fail and only remove roles granted to the user.

## Requirements

The below requirements are needed on the host that executes this module.

- unixODBC

- pyodbc

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
cluster - | Default: "localhost" | Name of the Vertica cluster.
db - |  | Name of the Vertica database.

expired
boolean

Choices:
- no
- yes

Sets the user's password expiration.

ldap
boolean

Choices:
- no
- yes

Set to true if users are authenticated via LDAP.
The user will be created with password expired and set to $ldap$.

login_password - |  | The password used to authenticate with.
login_user - | Default: "dbadmin" | The username used to authenticate with.
name - / required |  | Name of the user to add or remove.
password - |  | The user's password encrypted by the MD5 algorithm. The password must be generated with the format `"md5" + md5[password + username]`, resulting in a total of 35 characters. An easy way to do this is by querying the Vertica database with select 'md5'||md5('<user_password><user_name>').
port - | Default: 5433 | Vertica cluster port to connect to.
profile - |  | Sets the user's profile.
resource_pool - |  | Sets the user's resource pool.
roles - |  | Comma separated list of roles to assign to the user. aliases: role

state
-

Choices:
- present ←
- absent
- locked

Whether to create `present`, drop `absent` or lock `locked` a user.

## Notes

Note

- The default authentication assumes that you are either logging in as or sudo’ing to the `dbadmin` account on the host.

- This module uses `pyodbc`, a Python ODBC database adapter. You must ensure that `unixODBC` and `pyodbc` is installed on the host and properly configured.

- Configuring `unixODBC` for Vertica requires `Driver = /opt/vertica/lib64/libverticaodbc.so` to be added to the `Vertica` section of either `/etc/odbcinst.ini` or `$HOME/.odbcinst.ini` and both `ErrorMessagesPath = /opt/vertica/lib64` and `DriverManagerEncoding = UTF-16` to be added to the `Driver` section of either `/etc/vertica.ini` or `$HOME/.vertica.ini`.

## Examples

    - name: creating a new vertica user with password
      vertica_user: name=user_name password=md5<encrypted_password> db=db_name state=present

    - name: creating a new vertica user authenticated via ldap with roles assigned
      vertica_user:
        name=user_name
        ldap=true
        db=db_name
        roles=schema_name_ro
        state=present

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Dariusz Owczarek (@dareko)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.