Có sự khác biệt nào giữa việc cấp CHỌN người dùng và thêm họ vào vai trò db_datareader không?


9

Tôi đã được yêu cầu cấp SELECT, INSERTUPDATEcho một người dùng đưa ra cho tất cả các bảng trong một cơ sở dữ liệu. Tôi đã kết thúc việc thêm người dùng db_datareadervà cấp cho họ INSERTUPDATEở cấp cơ sở dữ liệu.

Nhưng điều đó khiến tôi suy nghĩ, sự khác biệt (nếu có) giữa việc cấp SELECTquyền cho người dùng ở cấp cơ sở dữ liệu hoặc thêm chúng vào db_datareadervai trò là gì? Và có cách nào tốt nhất bằng cách này hay cách khác?

Câu trả lời:


7

Rick Byham có một bài đăng WIKI hiển thị máy chủ cố định và vai trò cơ sở dữ liệu cố định và cách chúng ánh xạ. Bạn có thể xem tại đây: http://social.technet.microsoft.com/wiki/contents/articles/database-engine-fixed-server-and-fixed-database-roles.aspx

Biểu đồ cho thấy vai trò db_datareader giống hệt với GRANT SELECT ON [cơ sở dữ liệu]. Vì vậy, nó vẫn ổn để sử dụng, nhưng khuyến nghị là chuyển từ các vai trò đó sang các lệnh chi tiết hơn. Một số vai trò cơ sở dữ liệu cố định khác ít được xác định rõ ràng cho hầu hết mọi người. Sử dụng các lệnh rõ ràng dẫn đến sự rõ ràng hơn khi báo cáo quyền.

Rõ ràng bạn biết làm thế nào để cấp quyền hạt mịn hơn. Tôi đang cố gắng tách ra khỏi các vai trò cũ bất cứ khi nào có thể, nhưng db_owner (ví dụ) là một thói quen khó bỏ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.