SQL cho phép một số người dùng nhất định thực hiện một số tác vụ để kiểm soát sự hoạt động của cơ sở dữ liệu. Trong đó việc cấp hay thu hồi một số quyền (priviledge) nào đó là hai tác vụ quan trọng để những người dùng khác có thể tận dụng cơ sở dữ liệu, nhưng đồng thời vẫn đảm bảo an toàn cho hệ cơ sở dữ liệu.
Để người dùng có thể thực hiện một số thao tác trên cơ sở dữ liệu, họ phải được cấp các quyền tương ứng. Việc cấp quyền gồm 3 nội dung chủ yếu là cấp cho ai? có thể thực hiện các thao tác gì? và trên những đối tượng nào?
Phát biểu để cấp quyền có cú pháp như sau:
GRANT <các thao tác được thực hiện> ON <các đối tượng> TO <người dùng> [ WITH GRANT OPTION ] ;
Trong phát biểu trên :
Thí dụ ta muốn cấp quyền truy vấn các thông tin về họ tên và đơn vị của các nhân viên trong bảng Nhan_Vien cho mọi người thì ta dùng phát biểu sau:
GRANT SELECT ON Nhan_Vien( HoTen, DonVi ) TO PUBLIC ;
Nếu ta muốn cấp quyền rộng rãi cho người dùng "admin" khi truy cập bảng Sinh_Vien thì ta dùng phát biểu sau:
GRANT ALL PRIVILEDGES ON Sinh_Vien TO admin ;
Tuy nhiên GRANT ALL PRIVILEGES có thể tạo ra nhiều nguy cơ do người được cấp có rất nhiều quyền hạn rộng rãi, vì thế chỉ nên sử dụng hạn chế. Ngoài ra một số hệ quản trị cơ sở dữ liệu đã loại bỏ quyền này.
Cũng gần giống như khi cấp quyền, 3 nội dung chủ yếu của phát biểu thu hồi quyền là thu hồi quyền thực hiện những thao tác gì? của ai? trên những đối tượng nào? Những nội dung này thể hiện qua cú pháp sau:
REVOKE [ GRANT OPTION FOR ] <các thao tác bị thu hồi> ON <các đối tượng> FROM <người bị thu hồi> { RESTRICT | CASCADE } ;
Trong phát biểu trên :
Thí dụ ta muốn thu hồi quyền truy vấn vào bảng Ban_Hang mà trước đây đã cấp cho các người dùng thuộc phòng Hành chính (có tên định danh là phchinh) và cả những người dùng có liên quan thì ta sử dụng phát biểu sau:
REVOKE SELECT ON Ban_Hang FROM phchinh CASCADE ;
Trang web này được cập nhật lần cuối ngày 25/11/2018
Cơ sở dữ liệu
Các chuyên đề
Xử lý dữ liệu
Ma trận
R