Security and authentication
Generic authentication errors
To improve security, Vertica no longer issues the following error when a user attempts to connect and authenticate:
Invalid username or password
In addition, Vertica no longer issues method-specific error messages, and all authentication failures will result in the same error message:
authentication failed for username "name"
This change may affect clients that decide to retry connection attempts based on the type of connection error code. One such example is vsql
, which would previously attempt a plaintext connection if TLS failed (and TLSMODE was ENABLE
), but not if vsql
received an error code reporting incorrect user credentials.
Because the new, generic message and error code does not specify the cause for the failure, vsql
cannot distinguish between a authentication error as a result of an invalid TLS configuration or invalid user credentials, and it will attempt to establish a plaintext connection in both cases.
Default authentication records
Vertica now creates three default authentication records and grants them to the public
role. These authentication records have a priority of -1
, so all user-created authentication records take priority over these default records.
In previous versions of Vertica, if no authentication records were enabled, the following implicit authentication records were applied:
-
Users without a password were authenticated with the
trust
method. This implicit authentication record continues to apply in 12.0.0 for users without a password. -
Users with a password were authenticated with the
password
method. This implicit authentication record has been removed in favor of the default records.
Fallthrough authentication
You can now allow authentication records to fall through to the next record (in order of priority) upon failure. For details, see Fallthrough authentication.
Upgrade behavior
In previous versions, this fallthrough behavior was only available for ident
(could fall through to any other authentication method) and ldap
(could only fall through to other ldap
methods) authentication methods and this behavior could not be disabled. As of Vertica 12.0.0, this behavior is disabled by default for all new authentication records, including ident
and ldap
.
To preserve the behavior of existing databases that depended on ident
's fallthrough Vertica automatically enables fallthrough for ident
authentication records on upgrade if all of the following are true:
-
The database contains an
ident
authentication record. -
The
ident
authentication record has the highest priority. -
The database contains another user-defined authentication record.
Again, in previous versions, ldap
records only fell through to other ldap
records and skipped records that used other methods. This is no longer the case; ldap
records are fallthrough-compatible with many other methods.
Therefore, to replicate old fallthrough behavior for ldap
, your ldap
records must be consecutive (in priority order) to fallthrough to each other.