Bạn có thể cấp, trao, phân quyền hoặc thu hồi trên nhiều đối tượng trong cơ sở dữ liệu của SQL Server. Bài viết này sẽ hướng dẫn cách phân quyền và thu hồi quyền với bảng.
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;
Bài trước: Chỉ mục trong SQL Server
Bài sau: Lệnh CREATE LOGIN trong SQL Server