Đối với vai trò db_denycustomer
, tôi chỉ muốn mã cột của bảng khách hàng là CHỌN và không ai khác. Vì vậy, tôi đã làm điều này:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
... Và nó hoạt động tốt. Mát mẻ! Nhưng tại sao ?
Những gì tôi đã đọc trong các bài viết liên quan là ngăn xếp quyền, nhưng DENY
được ưu tiên. Ngược lại, trong trường hợp của tôi, có vẻ như "truy vấn" quyền cuối cùng được ưu tiên. Chắc chắn, nếu tôi thực hiện chúng theo thứ tự ngược lại, thì cái sau cũng DENY
ẩn cột mã.
Bạn có thể vui lòng giải thích về điều này?
Tôi cũng đã bao gồm mặc định db_datawriter
và db_datareader
vai trò cho người dùng mà tôi đã thử nghiệm.