Tôi thấy danh sách các đặc quyền được cung cấp bởi MySQL là một chút áp đảo. Tôi không chắc ai nên có đặc quyền gì. Trong tâm trí tôi có ba người dùng điển hình cho tình huống của tôi:
root
developer
application
root
là tự giải thích. Để developer
người dùng này cần có thể dễ dàng truy cập bất kỳ cơ sở dữ liệu nào, hãy điều chỉnh nó, v.v. Đối với người mới bắt đầu, tôi sẽ đặt người dùng này thành tập đặc quyền này:
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON
application
có một bộ thậm chí còn hạn chế hơn. Nó chỉ nên được giới hạn để thao tác một cơ sở dữ liệu cụ thể.
Tôi không chắc chắn một bộ đặc quyền hợp lý là gì để cấp. Tập hợp đặc quyền hợp lý để cấp cho nhà phát triển và ứng dụng là gì và tại sao?