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

MariaDB SESSION_USER() explicada


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.