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

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ả
SELECTKhả năng thực hiện lệnh SELECT trên bảng
INSERTKhả năng thực hiện lệnh INSERT trên bảng
UPDATEKhả năng thực hiện lệnh UPDATE trên bảng
DELETEKhả năng thực hiện lệnh DELETE trên bảng
REFERENCESKhả năng tạo ràng buộc tham chiếu tới bảng
ALTERKhả năng thực hiện lệnh ALTER TABLE trên bảng để thay đổi định nghĩa bảng.
ALLALL 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ả
SELECTKhả năng thực hiện lệnh SELECT trên bảng
INSERTKhả năng thực hiện lệnh INSERT trên bảng
UPDATEKhả năng thực hiện lệnh UPDATE trên bảng
DELETEKhả năng thực hiện lệnh DELETE trên bảng
REFERENCESKhả năng tạo ràng buộc tham chiếu tới bảng
ALTERKhả năng thực hiện lệnh ALTER TABLE trên bảng để thay đổi định nghĩa bảng.
ALLALL 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

Thứ Sáu, 10/05/2019 10:50
44 👨 29.461
0 Bình luận
Sắp xếp theo
    ❖ SQL Server