Làm cách nào để thay đổi các đặc quyền cho người dùng MySQL đã được tạo?


69

Tôi hiểu cách tạo người dùng mới với các đặc quyền, nhưng cách chính xác để thay đổi đặc quyền cho người dùng đã được tạo là gì?

Chúng tôi đang chạy kiểm toán DB và một số người dùng có quyền truy cập nhiều hơn sau đó là cần thiết. Thêm vào đó, tôi không biết mật khẩu cho hầu hết những người dùng MySQL này, vì vậy tôi không muốn xóa chúng và tạo mật khẩu mới.

Câu trả lời:


107

Để liệt kê người dùng:

select user,host from mysql.user;

Để hiển thị đặc quyền:

show grants for 'user'@'host';

Để thay đổi đặc quyền, đầu tiên thu hồi. Nhu la:

revoke all privileges on *.* from 'user'@'host';

Sau đó cấp các đặc quyền phù hợp như mong muốn:

grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';

Cuối cùng, xả nước:

flush privileges;

Tài liệu MySQL là tuyệt vời:

https://dev.mysql.com/doc/refman/8.0/en/access-control.html


3
Vâng, nếu không thu hồi, nó sẽ là đặc quyền của nhà nước;
Serge

7
Tài liệu mysql gần như không thể đọc được, câu trả lời này tốt hơn nhiều
Timo Huovinen

Tôi nghĩ (thu hồi tất cả các đặc quyền trên . Từ 'user' @ 'host';) nên (thu hồi tất cả trên . Từ 'user' @ 'host';) Cảm ơn,
Nicholas

1
câu trả lời này hoàn toàn sai "đặc quyền tuôn ra" không áp dụng cho các đặc quyền được thiết lập với cấp. quá trình trên dẫn đến việc người dùng không có đặc quyền nào trong thời điểm thu hồi và truy vấn cấp quyền được chạy và thêm vào đó xóa bộ đệm cấp quyền mà không có lý do gì __ điều này sẽ hoạt động nếu bạn thực hiện truy vấn thường xuyên đối với bảng mysql.user chứ không phải sử dụng các khoản tài trợ và nếu máy chủ không gặp sự cố hoặc dừng giữa các truy vấn.
sọ não
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.