В MariaDB, CURRENT_ROLE() е вградена функция, която връща текущото име на ролята. Текущата роля определя вашите права за достъп.
Резултатът от SELECT CURRENT_ROLE е еквивалентен на съдържанието на information_schema.ENABLED_ROLES таблица.
Синтаксис
Функцията може да бъде извикана със или без скоби:
CURRENT_ROLE
CURRENT_ROLE() Не се изискват или приемат аргументи.
Пример
Ето пример за демонстрация:
SELECT CURRENT_ROLE(); Резултат:
+----------------+ | CURRENT_ROLE() | +----------------+ | NULL | +----------------+
В моя случай няма текуща роля и така NULL се връща.
Нека добавим текуща роля:
SET ROLE analyst; И го стартирайте отново:
SELECT CURRENT_ROLE(); Резултат:
+----------------+ | CURRENT_ROLE() | +----------------+ | analyst | +----------------+
Сега ролята, която добавихме, е текущата роля.
Този пример предполага, че ролята е била създадена преди това.
Без скоби
Както споменахме, CURRENT_ROLE() функцията може да бъде извикана със или без скоби.
Ето пример без скоби:
SELECT CURRENT_ROLE; Резултат:
+--------------+ | CURRENT_ROLE | +--------------+ | analyst | +--------------+
Не се приемат аргументи
Подаване на всякакви аргументи към CURRENT_ROLE() води до грешка:
SELECT CURRENT_ROLE(1); Резултат:
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