SESSION_USER

Returns the name of the user running the current query.

Syntax

SESSION_USER()

Return Types

TEXT

Examples

Example

-- executed by user bob
SELECT session_user()

Returns

bob

Example

The following code example shows the effective privileges of the roles directly assigned to the user running the query:

SELECT
AR.grantee,
  AR.role_name,
  OP.privilege_type,
  OP.object_type,
  OP.object_name
FROM information_schema.applicable_roles AS AR
JOIN information_schema.object_privileges AS OP
ON (AR.role_name = OP.grantee)
WHERE
  AR.grantee = session_user();

Returns

grantee role_name privilege_type object_type object_name
test_user account_admin USAGE engine engine1
test_user account_admin USAGE database db1

Example

Dynamic security through view which uses session_user().

-- user bob created view:
create view my_employee_data as select * from employees where user_name = session_user();

-- user alice queries it:
select * from my_employee_data; -- session_user() will be evaluated to 'alice' for this query

Returns

user_name
alice