Tạo vai trò cơ sở dữ liệu để cho phép đọc truy cập vào tất cả các bảng; viết quyền truy cập vào một số


9

Chúng tôi có một cơ sở dữ liệu với hơn 1000 bảng. Tôi cần tạo một vai trò chỉ cho phép đọc trên tất cả các bảng, cũng như ghi quyền truy cập vào hai bảng cụ thể.

Tôi đã loay hoay với các vai trò cơ sở dữ liệu, nhưng bất cứ khi nào tôi thêm các bảng, tôi phải tự tay chọn tất cả 1000 ... có cách nào tốt hơn để làm điều này không?


Đó thực sự có thể là cách đơn giản nhất ... Có cách nào để viết kịch bản không? Tôi cần giữ một tập lệnh cho bất cứ khi nào chúng tôi làm mới một trong những cơ sở dữ liệu này, tôi có thể lấy lại tất cả cài đặt ngay lập tức.
Wes

Câu trả lời:


9

Cấp quyền trên lược đồ (ví dụ dbo) sẽ xếp tầng cho tất cả các đối tượng trong lược đồ đó. Đối với các trường hợp ngoại lệ riêng lẻ, bạn chỉ có thể liệt kê rõ ràng:

GRANT SELECT ON SCHEMA::dbo TO [role];
GO

GRANT INSERT, UPDATE --, DELETE
  ON dbo.table_they_can_write_to TO [role];

DENY SELECT ON dbo.table_they_cannot_read TO [role];

3
Vừa đủ dễ. Vui mừng chúng tôi có một cộng đồng như thế này.
Wes

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.