-ngôn ngữ kiểm soát dữ liệu

Quyền cơ sở dữ liệu GRANT, REVOKE và DENY

Ngôn ngữ kiểm soát dữ liệu (DCL) là một tập hợp con của Ngôn ngữ truy vấn có cấu trúc (SQL) và cho phép các quản trị viên cơ sở dữ liệu cấu hình truy cập bảo mật cho các cơ sở dữ liệu quan hệ. Nó bổ sung cho Ngôn ngữ định nghĩa dữ liệu (DDL), được sử dụng để thêm và xóa các đối tượng cơ sở dữ liệu và Ngôn ngữ thao tác dữ liệu (DML) được sử dụng để truy xuất, chèn và sửa đổi nội dung của cơ sở dữ liệu.

DCL là tập con của SQL đơn giản nhất, vì nó chỉ bao gồm ba lệnh: GRANT, REVOKE và DENY. Kết hợp, ba lệnh này cung cấp cho quản trị viên sự linh hoạt để thiết lập và loại bỏ quyền cơ sở dữ liệu theo kiểu cực kỳ chi tiết.

Thêm quyền với lệnh GRANT

Lệnh GRANT được quản trị viên sử dụng để thêm các quyền mới cho người dùng cơ sở dữ liệu . Nó có một cú pháp rất đơn giản, được định nghĩa như sau:

GRANT [đặc quyền] TRÊN [đối tượng] ĐẾN [người dùng] [VỚI CHỌN LỰA CHỌN]

Dưới đây là tóm tắt về mỗi tham số bạn có thể cung cấp với lệnh này:

Ví dụ: giả sử bạn muốn cấp cho người dùng Joe khả năng truy xuất thông tin từ bảng nhân viên trong cơ sở dữ liệu có tên HR. Bạn có thể sử dụng lệnh SQL sau:

CHỌN LỰA CHỌN TRÊN HR.employees ĐẾN Joe

Joe bây giờ sẽ có khả năng lấy thông tin từ bảng nhân viên. Tuy nhiên, anh ta sẽ không thể cấp cho người dùng khác quyền lấy thông tin từ bảng đó vì bạn không bao gồm mệnh đề WITH GRANT OPTION trong câu lệnh GRANT.

Thu hồi quyền truy cập cơ sở dữ liệu

Lệnh REVOKE được sử dụng để loại bỏ quyền truy cập cơ sở dữ liệu từ một người dùng trước đây đã cấp quyền truy cập đó. Cú pháp cho lệnh này được định nghĩa như sau:

REVOKE [GRANT OPTION FOR] [permission] ON [đối tượng] TỪ [người dùng] [CASCADE]

Dưới đây là tóm tắt về các tham số cho lệnh REVOKE:

Ví dụ: lệnh sau đây thu hồi quyền được cấp cho Joe trong ví dụ trước:

LỰA CHỌN LỰA CHỌN VỀ HR.employees TỪ Joe

Rõ ràng từ chối truy cập cơ sở dữ liệu

Lệnh DENY được sử dụng để ngăn chặn một cách rõ ràng người dùng nhận được một quyền cụ thể. Điều này hữu ích khi người dùng là thành viên của vai trò hoặc nhóm được cấp quyền và bạn muốn ngăn người dùng đó thừa kế quyền bằng cách tạo ngoại lệ. Cú pháp cho lệnh này như sau:

DENY [permission] ON [object] TO [user]

Các tham số cho lệnh DENY giống hệt với các tham số được sử dụng cho lệnh GRANT.

Ví dụ: nếu bạn muốn đảm bảo rằng Matthew sẽ không bao giờ nhận được khả năng xóa thông tin từ bảng nhân viên, hãy đưa ra lệnh sau:

DENY DELETE VỀ HR.employees ĐẾN Matthew