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() | +------------------+ | example@sqldat.com | +------------------+
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 | +---------------------+--------------+ | example@sqldat.com | @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 | +------------------+------------------+ | example@sqldat.com | example@sqldat.com | +------------------+------------------+
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.