SET SESSION AUTHORIZATION
Impersonate another user for the current session. Learn how to assume the identity and privileges of another account for testing or administration.
Certain users can perform server actions as another user:
This is implemented through the
SET SESSION AUTHORIZATIONstatement.This permits everything that can be done in a stored procedure with an arbitrary definer.
In particular, this bypasses account lock, expired password, authentication,
REQUIRE SSLchecks, and so on.Users are required to have the SET USER privilege.
Does not work inside transactions, prepared statements and stored procedures.
Examples
SELECT USER(), CURRENT_USER(), DATABASE();+--------------------+--------------------+------------+
| user() | current_user() | database() |
+--------------------+--------------------+------------+
| msandbox@localhost | msandbox@localhost | test |
+--------------------+--------------------+------------+
1 row in set (0.000 sec)SET SESSION AUTHORIZATION foo@localhost;
SELECT USER(), CURRENT_USER(), DATABASE();+---------------+----------------+------------+
| user() | current_user() | database() |
+---------------+----------------+------------+
| foo@localhost | foo@% | NULL |
+---------------+----------------+------------+Last updated
Was this helpful?

