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

MariaDB SYSTEM_USER() Explicado


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.