The authenticator now supports similar identifier matching as the MariaDB server. The lower_case_table_names parameter explains its intended use (case-insensitive identifier matching): https://mariadb.com/kb/en/library/server-system-variables/#lower_case_table_names
		
			
				
	
	
		
			83 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# MySQL Authenticator
 | 
						|
 | 
						|
The _MySQLAuth_ and _MySQLBackendAuth_ modules implement the client and
 | 
						|
backend authentication for the MySQL native password authentication. This
 | 
						|
is the default authentication plugin used by both MariaDB and MySQL.
 | 
						|
 | 
						|
These modules are the default authenticators for all MySQL connections and
 | 
						|
needs no further configuration to work.
 | 
						|
 | 
						|
## Authenticator options
 | 
						|
 | 
						|
The client authentication module, _MySQLAuth_, supports authenticator
 | 
						|
options. The `authenticator_options` parameter is supported by listeners
 | 
						|
and servers and expects a comma-separated list of key-value pairs. The
 | 
						|
following options contain examples on how to define it.
 | 
						|
 | 
						|
### `skip_authentication`
 | 
						|
 | 
						|
This option takes a boolean value which controls whether MaxScale will fully
 | 
						|
authenticate users. This option is disabled by default.
 | 
						|
 | 
						|
Disabling authentication in MaxScale will allow MaxScale to act as a security
 | 
						|
gateway to the server. The authentication of users is offloaded to the backend
 | 
						|
server.
 | 
						|
 | 
						|
For example, creating the user `jdoe@%` will allow the user _jdoe_ to connect
 | 
						|
from any IP address. This can be a problem if all traffic needs to go through
 | 
						|
MaxScale. By enabling this option and replacing the user with
 | 
						|
`jdoe@maxscale-IP`, the users can still connect from any client IP but will be
 | 
						|
forced to go though MaxScale.
 | 
						|
 | 
						|
```
 | 
						|
authenticator_options=skip_authentication=true
 | 
						|
```
 | 
						|
 | 
						|
### `cache_dir`
 | 
						|
 | 
						|
The location where the user credential cache is stored. The default value
 | 
						|
for this is `<cache dir>/<service name>/<listener name>/cache/` where
 | 
						|
`<cache dir>` by default is `/var/cache`.
 | 
						|
 | 
						|
If _cache_dir_ is defined, the user cache file is stored in `<cache
 | 
						|
dir>/`. No additional directories are appended to the _cache_dir_ value.
 | 
						|
 | 
						|
Each listener has its own user cache where the user credential information
 | 
						|
queried from the backends is stored. This information is used to
 | 
						|
authenticate users if a connection to the backend servers can't be made.
 | 
						|
 | 
						|
```
 | 
						|
authenticator_options=cache_dir=/tmp
 | 
						|
```
 | 
						|
 | 
						|
### `inject_service_user`
 | 
						|
 | 
						|
Inject service credentials into the list of database users if loading of
 | 
						|
users fails. This option takes a boolean value and it is enabled by
 | 
						|
default.
 | 
						|
 | 
						|
When a connection to the backend database cannot be made, the service user
 | 
						|
can be injected into the list of allowed users. This allows administrative
 | 
						|
operations to be done via the SQL interface with modules that support it
 | 
						|
e.g. the Binlogrouter and Maxinfo modules.
 | 
						|
 | 
						|
If users are loaded successfully, the service user credentials are _not_
 | 
						|
injected into the list of users.
 | 
						|
 | 
						|
```
 | 
						|
authenticator_options=inject_service_user=false
 | 
						|
```
 | 
						|
 | 
						|
### `lower_case_table_names`
 | 
						|
 | 
						|
Enable case-insensitive identifier matching for authentication. This parameter
 | 
						|
is disabled by default.
 | 
						|
 | 
						|
The parameter functions exactly as the MariaDB Server system variable
 | 
						|
[lower_case_table_names](https://mariadb.com/kb/en/library/server-system-variables/#lower_case_table_names).
 | 
						|
This makes the matching done by the authenticator on database names to be
 | 
						|
case-insensitive by converting all names into their lowercase form.
 | 
						|
 | 
						|
**Note:** The identifier names are converted using an ASCII-only function. This
 | 
						|
  means that non-ASCII characters will retain their case-sensitivity.
 |