tính
khi kết nối đến cơ sở dữ liệu thông th−ờng bạn hay dùng một mật khẩu, tuy nhiên việc mã hoá chúng thì không htực sự mạnh và một số nổ lực tấn công của những kẻ phá hoại có thể bẻ đ−ợc mật khẩu của bạn nếu nh− những kẻ phá hoại có thể chặng đứng đ−ợc việc l−u thông giữa máy chủ và máy khách, tất cả các thông tin truyền trên mạng đều có thể bị ng−ời nào đó chặng đứng lại và sử dụng chúng, nếu bạn lo lắng về điều này thì bạn có thể sử dụng việc mã hoá kết nối dạng tep/ip khi kết nói giữa máy chủ và máy khách.
Để đảm bảo an toàn cho hệ thống bạn cần thực hiện những việc sau :
- Sử dụng password cho tất cả ng−ời dùng vì nếu không dùng password thì bất kỳ ng−ời dùng nào cũng có thể truy nhập cơ sở dữ liệu
- Bạn có thể thay đổi password cho tất cả ng−ời dùng bằng chách thay đổi kịch bản Mysql_install_db tr−ớc khi thực hiện mysql hoặc sửa password cho ng−ời dùng root
- sell>mysql-u root mysql;
mysql>update user set password =password (‘ne− password’);
where user =’root’;
mysql>flúh privileges;
- Không nên chạy mysql nh− ng−ời dùng unix root điều này rất nguy hiểm vì ng−ời có quyền đói với file có thể tạo file t−ơng tự nh− root, để ngăn chặn điều này thì mysql th−ờng không chạy mysql nh− dạng root trừ khi có chỉ thị trực tiếp là :
-user=root;
Nếu đặt mật khẩu cho ng−ời dùng unix root trong kịch bản của mysql server thì bạn phải đảm bảo rằng nó chỉ có thể đ−ợc đọc bởi
ng−ời dùng root.
- Kiểm tra ng−ời dùng Unix rằng mysql chỉ chạy đối với ng−ời dùng có quyền read/write.
- Trong các trạm làm việc Unix không nên chạy Mysql nh− ng−ời dùng root trừ phi điều đó thực sự cần thiết .
- Không nên gán quyền process cho tất cả ng−ời dùng .
- Không nên gán quyền đôío với file cho tất cả ng−ời dùng .
Một số sự chọn lựa liên quan đến việc an toàn khi khởi động Mysql
-- secure : trả lại số ip bởi gethost by name() lời gọi hệ thống sẽ kiểm tra để đảm bảo chắc chắn rằng chúng sẽ trả lại tên của máy chủ, điều này sẽ gây khó khăn cho những ai phịa ra một tên máy để lấy địa chỉ.
-- skip-grant-table : điều này sẽ làm cho hệ thống không sử dụng hệ thống quuyền và tất cả mọi ng−ời đều có đầy đủ quyền hạn để truy nnhập vào cơ sở dữ liệu (bạn có thể sử dụng hệ thống quyền bằng cách thực hiện mysqladmin flush-privileges).
-- skip-name-resolve: sự chọn lựa này sẽ làm cho tất cả các giá trị trong cột host của bảng phân quyền đều là địa chỉ IP hoặc là localhost.
-- skip-networking: không cho phép giao thức tep/ip đ−ợc kết nối .
-- skip-show database: khi có lệnh SHOW DATABASE sẽ không trả lại một giá trị nào cả .
-- safe-show-database: lệnh SHOW DATABASE sẽ chỉ trả lại giá trị đối với những ng−ời có quyền đối với lệnh này .