En MariaDB, CURRENT_ROLE() es una función integrada que devuelve el nombre del rol actual. El rol actual determina sus privilegios de acceso.
La salida de SELECT CURRENT_ROLE es equivalente al contenido de information_schema.ENABLED_ROLES mesa.
Sintaxis
La función se puede llamar con o sin paréntesis:
CURRENT_ROLE
CURRENT_ROLE() No se requieren ni se aceptan argumentos.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT CURRENT_ROLE(); Resultado:
+----------------+ | CURRENT_ROLE() | +----------------+ | NULL | +----------------+
En mi caso, no hay un rol actual, por lo que NULL es devuelto.
Agreguemos un rol actual:
SET ROLE analyst; Y ejecutarlo de nuevo:
SELECT CURRENT_ROLE(); Resultado:
+----------------+ | CURRENT_ROLE() | +----------------+ | analyst | +----------------+
Ahora, el rol que agregamos es el rol actual.
Este ejemplo asume que el rol ha sido creado previamente.
Sin paréntesis
Como se mencionó, el CURRENT_ROLE() La función se puede llamar con o sin paréntesis.
Aquí hay un ejemplo sin paréntesis:
SELECT CURRENT_ROLE; Resultado:
+--------------+ | CURRENT_ROLE | +--------------+ | analyst | +--------------+
No se aceptan argumentos
Pasar cualquier argumento a CURRENT_ROLE() da como resultado un error:
SELECT CURRENT_ROLE(1); Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1)' at line 1