No MariaDB,
SYSTEM_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:
SYSTEM_USER()
Nenhum argumento é necessário ou aceito.
Exemplo
Segue um exemplo para demonstrar:
SELECT SYSTEM_USER();
Resultado:
+------------------+ | SYSTEM_USER() | +------------------+ | [email protected] | +------------------+
SYSTEM_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 SYSTEM_USER()
. Por exemplo, se nos conectarmos usando
anonymous
:mariadb --user="anonymous"
Em seguida, execute
SYSTEM_USER()
e CURRENT_USER()
:SELECT
SYSTEM_USER(),
CURRENT_USER;
Resultado:
+---------------------+--------------+ | SYSTEM_USER() | CURRENT_USER | +---------------------+--------------+ | [email protected] | @localhost | +---------------------+--------------+
Mas se voltarmos para nossa sessão anterior (na janela do terminal original), cada função retornará os mesmos resultados:
SELECT
SYSTEM_USER(),
CURRENT_USER;
Resultado:
+------------------+------------------+ | SYSTEM_USER() | CURRENT_USER | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
Nenhum argumento é aceito
Passando quaisquer argumentos para
SYSTEM_USER()
resulta em um erro:SELECT SYSTEM_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
SYSTEM_USER()
função (ou USER()
e SESSION_USER()
) não são seguros para replicação em nível de instrução.