Hệ thống quyền truy xuất đ−ợc cung cấp bởi MySQL

Một phần của tài liệu Tài liệu lập trình PHP và SQL (Trang 108)

Thông tin về quyền truy xuất của ng−ời sử dụng đ−ợc l−u trữ trong các bảng User, D, Host, Table_Priv và bảng Column_Priv trong cơ sở dữ liệu MySQL, MySQL server sẽ đọc nôit dung của các bảng khi khởi động.

Bảng sau đây liệt kê các quyền và t−ơng ứng với các cột liên quan đến quyền và ngữ cảnh mà các quyền đó áp dụng. Các quyền Cột Ngữ cảnh Select Select_Priv Bảng Insert Insert_Priv Bảng Update Update_Priv Bảng Delete Delete_Priv Bảng Index Index_Priv Bảng Alter Alter_Priv Bảng Creat Creat_Priv CSDL, Bảng, Chỉ số

Drop Drop_Priv CSDL hoặc Bảng

Grant Grant_Priv CSDL hoặc Bảng

References References_Priv CSDL hoặc Bảng

Reload Reload_Priv Quản trị máy chủ

Shutdown Shutdown_Priv Quản trị máy chủ

Process Process_Priv Quản trị máy chủ

file file_Priv Quản trị máy chủ

• Quyền Select, Insert, Delete, Update cho phép bạn thực hiện các thao tác đối với các hảng của bảng trong cơ sở dữ liệu.

• Quyền Alter cho phép bạn sử dụng câu lệnh Alter Table.

• Quyền Creat, Drop cho phép bạn tạo mới một CSDL, bảng hoặc xoá CSDL bảng đã tồn tại, chú ý rằng nếu bạn cấp phát quyền Creat, Drop cho ng−ời sử dụng, thì ng−ời dùng có thể xoá CSDL mà trong đó quyền truy nhập đến MySQL đ−ợc l−u trữ.

• Quyền Grant cho phép bạn cấp phát quyền cho những ng−ời dùng khác những quyền mà bạn có.

• Quyền đối với file cho phép đọc với ghi đối với file trên server, sử dụng các lệnh LOAD DATA INFILE và SELECT.. INTO OUTFILE bất kì ng−ời dùng nào đ−ợc gán quyền này đều có thể đọc hoặc hoặc ghi đối với file mà SQL có thể đọc hoặc ghi.

• Những quyền còn lại đ−ợc phục vụ cho công việc quản trị mà chúng đ−ợc thực hiện bởi ch−ơng trình MySQL Admin. Bảng d−ới đây sẽ chỉ cho bạn những lệnh mà quyền quản trị cho phép bạn thực hiện.

Quyền Những lệnh có thể thực hiện

Reload Reload, refresh, flush_privileges, flush-hosts, flush-logs, flush- tables

Shutdown Shutdown

Process Processlist, kills

Lệnh Reload sẽ chỉ thị cho máy chủ thực hiện việc đọc lại bảng các phân quyền, lệnh refresh nạp lại tất cả các bảng, mở và đóng tất cả các file log. Lệnh flush-privileges t−ơng tự nh− lệnh reload, một số lệnh flush-* khác thực hiện chức năng nh− refresh, nh−ng có giới hạn hẹp hơn lệnh refresh, nó sẽ thích hợp trong một số tr−ờng hợp, ví dụ ban chỉ càn Flush đối với log file thì lệnh flush-logs thích hợp hơn lệnh refresh.

• Lệnh Shutdown sẽ làm cho máy chủ ngừng hoạt động.

• Processlist sẽ hiển thị những thông tin trong suốt quá trình hoạt động với máy chủ.

• Lệnh kills sẽ tắt một phiên làm việc với máy chủ, bạn có thể thực hiện 2 lệnh trên nhiều lần trong một dòng làm việc nh−ng bạn phải có quyền Process.

Một ý kiến hay tổng quát trong việc gán quyền cho ng−ời dùng đó là chỉ gán những quyền cần thiết cho ng−ời dùng mà họ cần để họ thực hiện những công việc của mình.

Một số chú ý đối với đặc điểm thực hiện những quyền sau:

• Quyền Grant cho phép ng−ời dùng cấp những mà họ có cho ng−ời dùng khác. Hai ng−ời sử dụng có các quyền khác nhau, với quyền Grant họ có thể kết hợp những quyền này.

• Quyền Alter có thể đ−ợc sử dụng để phá vỡ những quyền bằng việc đổi tên bảng.

• Quyền đối với file có thể bị lạm dụng để đọc một số file trên máy chủ vào bảng trong cơ sở dữ liệu, nội dung của bảng này có thể bị truy nhập bằng cách sử dụng những câu lệnh Select, điều này cũng có thể đ−ợc thực hiện đối với một số cơ sở dữ liệu chính của máy chủ.

• Quyền Shutdown có thể lạm dụng để từ chối một số dịch vụ đối với ng−ời sử dụng khác bằng cách tắt máy chủ.

• Quyền process có thể đ−ợc sử dụng để xem dạng văn bản thuần Text của những câu truy vấn hiện thời kể cả những câu truy vấn để đặt lại mật khẩu

• Quyền đối với những cơ sở dữ liệu mysql có thể bị sử dụng để thay đổi password và một số quyền truy nhập thông tin khác, (adsbygoogle = window.adsbygoogle || []).push({});

Một số vấn đề mà bạn không thể thực hiện đối với hệ thống quuyền hạn trong Mysql

Bạn không thể chỉ ra một cách rõ ràng rằng ng−ời sử dụng không thể thực hiện đ−ợc, nghĩa là bạn không thể xác định một ng−ời dùng phù hợp và từ chối việc kết nối .

Bạn không thể chỉ rõ một ng−ời dùng có quyền tạo và xoá các bảng trong một cơ sỏ dữ liệu, nh−ng không có quyền tạo và xoá chính CSDL đó.

Một phần của tài liệu Tài liệu lập trình PHP và SQL (Trang 108)