btvn.vn
Tìm kiếm Đăng nhập

SQL cấp và thu hồi quyền truy cập

Lưu trên thiết bị này
Giới thiệu các hệ cơ sở dữ liệu · Chọn bài khác

Quyền gì, trên bảng nào, cho ai

Nhóm **DCL** của SQL dùng để kiểm soát quyền truy cập. `GRANT` cấp một quyền; `REVOKE` thu hồi một quyền đã cấp. Muốn hiểu một yêu cầu phân quyền phải xem đủ **thao tác**, **đối tượng dữ liệu** và **tài khoản**. `SELECT` là quyền đọc dữ liệu, `UPDATE` là quyền sửa, `DELETE` là quyền xóa. Trong thư viện nhạc giả định, tài khoản `doc_gia` chỉ cần xem bảng BanNhac; nhân viên `bien_tap` được sửa tên bài sau khi kiểm duyệt. Cấp quyền SELECT cho doc_gia không đồng nghĩa cấp UPDATE hoặc DELETE. Khi nhân viên chuyển nhiệm vụ, người quản trị có thể thu hồi quyền UPDATE đã cấp cho bien_tap.

Cú pháp là ví dụ theo hệ QTCSDL

SGK minh họa dạng `GRANT SELECT ON music.* TO guest` và `REVOKE ... ON music.bannhac FROM mod`. Trong đó `music.*` chỉ phạm vi mọi bảng của CSDL `music`, còn `music.bannhac` chỉ một bảng. Đây là **cú pháp minh họa theo MySQL**; SQLite dùng để chạy thử các truy vấn của các bài trước không hỗ trợ `GRANT`/`REVOKE` theo dạng này. Để phục vụ việc đọc danh mục, yêu cầu hợp lí là **quyền SELECT trên đúng bảng cần xem**, không cấp quyền sửa hoặc xóa chỉ vì cùng một tài khoản đã được đọc. Quyền thực tế còn phụ thuộc hệ QTCSDL, tài khoản đã được tạo và người thực hiện lệnh có quyền cấp/thu hồi tương ứng.

Bài luyện

Tài khoản doc_gia chỉ cần xem danh mục BanNhac. Quyền nào phù hợp với nhiệm vụ này?
Chọn một đáp án

Bài luyện

Muốn thu hồi quyền UPDATE đã cấp cho bien_tap, dùng từ khóa nào theo SGK?
Chọn một đáp án

Bài luyện

Trong ví dụ SGK, `music.*` chỉ phạm vi nào?
Chọn một đáp án

Đang học