No MariaDB,
SESSION_USER()
é um sinônimo para o USER()
função. Ele retorna o nome de usuário e o nome do host MariaDB atuais, fornecidos ao autenticar no MariaDB. Sintaxe
A sintaxe fica assim:
SESSION_USER()
Nenhum argumento é necessário ou aceito.
Exemplo
Segue um exemplo para demonstrar:
SELECT SESSION_USER();
Resultado:
+------------------+ | SESSION_USER() | +------------------+ | [email protected] | +------------------+
SESSION_USER()
vs CURRENT_USER()
Há também outra função chamada
CURRENT_USER()
que faz uma coisa semelhante. No entanto, nem sempre retorna o mesmo resultado que SESSION_USER()
. Por exemplo, se nos conectarmos usando
anonymous
:mariadb --user="anonymous"
Em seguida, execute
SESSION_USER()
e CURRENT_USER()
:SELECT
SESSION_USER(),
CURRENT_USER;
Resultado:
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | [email protected] | @localhost | +---------------------+--------------+
No entanto, se voltarmos à nossa sessão anterior (na janela do terminal original), cada função retornará os mesmos resultados:
SELECT
SESSION_USER(),
CURRENT_USER;
Resultado:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
Nenhum argumento é aceito
Passando quaisquer argumentos para
SESSION_USER()
resulta em um erro:SELECT SESSION_USER(123);
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 '123)' at line 1
Declarações usando o
SESSION_USER()
função (ou USER()
e SYSTEM_USER()
) não são seguros para replicação em nível de instrução.