MXS-1452: Add support for KILL USER <name>

Added support for killing queries by username. This will kill all
connections from that particular user on all servers.
This commit is contained in:
Markus Mäkelä
2017-10-02 14:53:30 +03:00
parent 4150dee952
commit 96d160f897
5 changed files with 131 additions and 54 deletions

View File

@ -78,16 +78,13 @@ transaction or change the autocommit mode using a prepared statement.
* Compression is not included in the MySQL server handshake.
* MariaDB MaxScale will intercept `KILL <thread_id>` statements which are of the
form `KILL 3`, `KILL CONNECTION 321` and `KILL QUERY 8`. These queries are not
routed to backends because the `<thread_id>` sent by the client does not equal a
backend id. MaxScale reacts to a thread kill command by killing the session with
the given id if the user and host of the issuing session and the target session
match. Query kill command is not supported and results in an error message. For
MaxScale to recognize the *KILL* statement, the statement must start right after
the command byte, have no comments and have minimal whitespace. These
limitations are in place to limit the parsing MaxScale needs to do to every
query.
* MariaDB MaxScale does not support `KILL QUERY ID <query_id>` type
statements. If a query by a query ID is to be killed, it needs to be done
directly on the backend databases.
* The `KILL` commands are executed asynchronously and the results are
ignored. Due to this, they will always appear to succeed even if the user is
lacking the permissions.
## Authenticator limitations

View File

@ -197,10 +197,14 @@ to the server. For more information, see the server section in the
### KILL command support
The MySQL client protocol now detects `KILL <thread_id>` statements (binary and
query forms) and kills the MaxScale session with the given id. This feature has
some limitations, see [Limitations](../About/Limitations.md) for more
information.
The MySQL client protocol now supports execution of `KILL` statements through
MaxScale. The connection IDs in these queries will be transformed into the
correct ones by MaxScale.
`KILL QUERY ID <query_id>` is not supported by MaxScale and it needs to be
executed directly on the relevant backend server. In addition to this, there are
minor limitations to the `KILL` command handling. See
[Limitations](../About/Limitations.md) for more information.
### New `uses_function` rule for dbfwfilter