MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

MariaDB CURRENT_ROLE() explicado


No MariaDB, CURRENT_ROLE() é uma função interna que retorna o nome da função atual. A função atual determina seus privilégios de acesso.

A saída de SELECT CURRENT_ROLE é equivalente ao conteúdo do information_schema.ENABLED_ROLES tabela.

Sintaxe


A função pode ser chamada com ou sem os parênteses:
CURRENT_ROLE
CURRENT_ROLE()

Nenhum argumento é necessário ou aceito.

Exemplo


Segue um exemplo para demonstrar:
SELECT CURRENT_ROLE();

Resultado:
+----------------+
| CURRENT_ROLE() |
+----------------+
| NULL           |
+----------------+

No meu caso, não há função atual e, portanto, NULL é devolvido.

Vamos adicionar uma função atual:
SET ROLE analyst;

E execute novamente:
SELECT CURRENT_ROLE();

Resultado:
+----------------+
| CURRENT_ROLE() |
+----------------+
| analyst        |
+----------------+

Agora, a função que adicionamos é a função atual.

Este exemplo pressupõe que a função foi criada anteriormente.

Sem parênteses


Como mencionado, o CURRENT_ROLE() A função pode ser chamada com ou sem parênteses.

Aqui está um exemplo sem parênteses:
SELECT CURRENT_ROLE;

Resultado:
+--------------+
| CURRENT_ROLE |
+--------------+
| analyst      |
+--------------+

Nenhum argumento é aceito


Passando quaisquer argumentos para CURRENT_ROLE() resulta em um erro:
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