Tôi muốn biết liệu có cách nào để truy vấn mysql trả về tên người dùng của người dùng đưa ra truy vấn hay không.
Điều này có khả thi không?
Tôi muốn biết liệu có cách nào để truy vấn mysql trả về tên người dùng của người dùng đưa ra truy vấn hay không.
Điều này có khả thi không?
Câu trả lời:
Hãy thử CURRENT_USER()
chức năng. Điều này trả về tên người dùng mà MySQL đã sử dụng để xác thực kết nối máy khách của bạn. Đó là tên người dùng này xác định đặc quyền của bạn.
Điều này có thể khác với tên người dùng được khách hàng gửi đến MySQL (ví dụ: MySQL có thể sử dụng tài khoản ẩn danh để xác thực khách hàng của bạn, ngay cả khi bạn đã gửi tên người dùng). Nếu bạn muốn tên người dùng mà máy khách gửi đến MySQL khi kết nối, hãy sử dụng USER()
hàm thay thế.
Giá trị cho biết tên người dùng bạn đã chỉ định khi kết nối với máy chủ và máy khách mà bạn đã kết nối từ đó. Giá trị có thể khác với giá trị của CURRENT_USER ().
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html# Chức năng_current-user
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_USER()' at line 1
CURRENT_USER()
không đúng cho câu hỏi "Có cách nào để biết tên người dùng hiện tại * của bạn * trong mysql không?". Câu trả lời là "USER ()", "Trả về người dùng MySQL hiện tại" ( dev.mysql.com/doc/refman/5.7/en/… ). Bạn nên cập nhật câu trả lời của mình để hoàn thiện hơn, ngắn quá.
Cố gắng chạy một trong hai
SELECT USER();
hoặc là
SELECT CURRENT_USER();
Đôi khi có thể khác, USER () sẽ trả về thông tin đăng nhập mà bạn đã cố gắng xác thực và CURRENT_USER () sẽ trả về cách bạn thực sự được phép xác thực.
Bạn có thể dùng:
SELECT USER();
hoặc là
SELECT CURRENT_USER();
Xem thêm tại đây http://dev.mysql.com/doc/refman/5.0/en/information-functions.html# Chức năng_current-user
để in người dùng hiện tại đang sử dụng cơ sở dữ liệu
select user();
hoặc là
select current_user();
Bạn cũng có thể sử dụng: mysql> chọn người dùng, máy chủ từ mysql.user;
+---------------+-------------------------------+
| user | host |
+---------------+-------------------------------+
| fkernel | % |
| nagios | % |
| readonly | % |
| replicant | % |
| reporting | % |
| reporting_ro | % |
| nagios | xx.xx.xx.xx |
| haproxy_root | xx.xx.xx.xx
| root | 127.0.0.1 |
| nagios | localhost |
| root | localhost |
+---------------+-------------------------------+
Bạn có thể tìm thấy tên người dùng hiện tại bằng hàm CURRENT_USER () trong MySQL.
cho Ví dụ:
SELECT CURRENT_USER();
Nhưng CURRENT_USER()
không phải lúc nào cũng trả về người dùng đã đăng nhập. Vì vậy, trong trường hợp bạn muốn có người dùng đã đăng nhập, hãy sử dụng SESSION_USER()
thay thế.