Trong MariaDB, SESSION_USER()
là từ đồng nghĩa với USER()
hàm số. Nó trả về tên người dùng và tên máy chủ MariaDB hiện tại, được cung cấp khi xác thực với MariaDB.
Cú pháp
Cú pháp như sau:
SESSION_USER()
Không có đối số nào được yêu cầu hoặc chấp nhận.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT SESSION_USER();
Kết quả:
+------------------+ | SESSION_USER() | +------------------+ | [email protected] | +------------------+
SESSION_USER()
so với CURRENT_USER()
Ngoài ra còn có một hàm khác được gọi là CURRENT_USER()
điều đó làm một điều tương tự. Tuy nhiên, không phải lúc nào nó cũng trả về cùng một kết quả là SESSION_USER()
.
Ví dụ:nếu chúng tôi kết nối bằng anonymous
:
mariadb --user="anonymous"
Sau đó chạy SESSION_USER()
và CURRENT_USER()
:
SELECT
SESSION_USER(),
CURRENT_USER;
Kết quả:
+---------------------+--------------+ | SESSION_USER() | CURRENT_USER | +---------------------+--------------+ | [email protected] | @localhost | +---------------------+--------------+
Tuy nhiên, nếu chúng ta quay trở lại phiên trước đó (trong cửa sổ đầu cuối ban đầu), mỗi hàm trả về kết quả giống nhau:
SELECT
SESSION_USER(),
CURRENT_USER;
Kết quả:
+------------------+------------------+ | SESSION_USER() | CURRENT_USER | +------------------+------------------+ | [email protected] | [email protected] | +------------------+------------------+
Không có đối số nào được chấp nhận
Chuyển bất kỳ đối số nào cho SESSION_USER()
dẫn đến lỗi:
SELECT SESSION_USER(123);
Kết quả:
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
Các câu lệnh sử dụng SESSION_USER()
function (hoặc USER()
và SYSTEM_USER()
) không an toàn để sao chép cấp câu lệnh.