Cấp / Thu hồi quyền trong SQL Server

Phân quyền trên bảng

Có thể phân quyền cho người dùng trên bảng với quyền được trao có thể gồm SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER hoặc ALL.

Cú pháp

GRANT quyen ON doi_tuong TO nguoi_dung;

quyen

Quyền được chỉ định cho người dùng. Có thể là:

Quyền Mô tả
SELECT Khả năng thực hiện lệnh SELECT trên bảng
INSERT Khả năng thực hiện lệnh INSERT trên bảng
UPDATE Khả năng thực hiện lệnh UPDATE trên bảng
DELETE Khả năng thực hiện lệnh DELETE trên bảng
REFERENCES Khả năng tạo ràng buộc tham chiếu tới bảng
ALTER Khả năng thực hiện lệnh ALTER TABLE trên bảng để thay đổi định nghĩa bảng.
ALL ALL không trao tất cả quyền trên bảng mà trao các quyền theo chuẩn ANSI-92, gồm SELECT, INSERT, UPDATE, DELETE và REFERENCES.

doi_tuong

Tên của đối tượng cơ sở dữ liệu mà bạn muốn trao quyền. Trong trường hợp trao quyền trên bảng thì đó là tên bảng.

nguoi_dung

Tên người dùng sẽ được trao quyền.

Ví dụ

Nếu muốn trao quyền SELECT, INSERT, UPDATE và DELETE trên bảng nhanvien cho người dùng là smithj, chạy lệnh GRANT dưới đây.

GRANT SELECT, INSERT, UPDATE, DELETE ON nhanvien TO smithj;

Có thể dùng từ khóa ALL để cho biết là bạn muốn trao tất cả quyền theo ANSI-92 cho người dùng smithj.

GRANT ALL ON nhanvien TO smithj;

Nếu chỉ muốn trao quyền SELECT trên bảng nhanvien cho tất cả người dùng, hãy trao cho nhóm quyền công cộng (PUBLIC).

GRANT SELECT ON nhanvien TO PUBLIC;

Xem thêm: Cách phân quyền cho người dùng trong MS SQL Server

Thu hồi quyền trên bảng

Sau khi trao quyền, có thể bạn muốn thu hồi quyền đã trao bằng lệnh REVOKE, rút về các quyền SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER hoặc ALL.

Cú pháp

REVOKE quyen ON doi_tuong FROM nguoi_dung;

quyen

Quyền sẽ được thu hồi, có thể là:

Quyền Mô tả
SELECT Khả năng thực hiện lệnh SELECT trên bảng
INSERT Khả năng thực hiện lệnh INSERT trên bảng
UPDATE Khả năng thực hiện lệnh UPDATE trên bảng
DELETE Khả năng thực hiện lệnh DELETE trên bảng
REFERENCES Khả năng tạo ràng buộc tham chiếu tới bảng
ALTER Khả năng thực hiện lệnh ALTER TABLE trên bảng để thay đổi định nghĩa bảng.
ALL ALL không trao tất cả quyền trên bảng mà trao các quyền theo chuẩn ANSI-92, gồm SELECT, INSERT, UPDATE, DELETE và REFERENCES.

doi_tuong

Tên của đối tượng cơ sở dữ liệu mà bạn muốn thu hồi quyền. Trong trường hợp trao quyền trên bảng thì đó là tên bảng.

nguoi_dung

Tên người dùng sẽ bị thu hồi quyền.

Ví dụ

Nếu muốn thu hồi quyền DELETE trên bảng nhanvien của người dùng anderson, chạy lệnh REVOKE dưới đây.

REVOKE DELETE ON nhanvien FROM anderson;

Nếu muốn thu hồi các quyền theo ANSI-92 trên bảng nhanvien cho người dùng là andersonj, dùng từ khóa ALL, chạy lệnh GRANT dưới đây.

REVOKE ALL ON nhanvien FROM anderson;

Nếu đã trao quyền SELECT cho nhóm người dùng công cộng (tất cả người dùng) trên bảng nhanvien và muốn thu hồi quyền này, dùng lệnh REVOKE dưới đây.

REVOKE SELECT ON nhanvien FROM PUBLIC;