Tài khoản dịch vụ SQL Server Đặc quyền và quyền của Windows


12

Câu hỏi của tôi là, nếu bạn tạo một tài khoản người dùng miền mới cho mỗi quy trình SQL Server, thì nên đặt quyền nào cho mỗi tài khoản? Hoặc trình quản lý cấu hình SQL thực sự quan tâm đến vấn đề này và tôi chỉ gặp sự cố không lường trước được?

Tôi thường phải thiết lập Microsoft SQL Server và tự hỏi liệu có ai có thể cung cấp lời khuyên về cách định cấu hình các tài khoản mà các dịch vụ sẽ chạy như không. IMO điều này đã được Microsoft ghi lại một cách mơ hồ, trong khi họ chỉ cho bạn đi đúng hướng tôi chưa bao giờ có thể tìm thấy bất kỳ ví dụ cụ thể nào.

Để tóm tắt những gì tôi đã thấy cho đến nay:

Đối với các triển khai đơn giản \ môi trường phát triển, bạn có thể sử dụng tài khoản ảo mặc định trình cài đặt sử dụng: vd NT SERVICE\MSSQLSERVER

Tránh sử dụng SYSTEMtài khoản, điều này không an toàn.

Để sản xuất và trong môi trường miền, bạn nên sử dụng Tài khoản dịch vụ được quản lý hoặc tạo tài khoản người dùng tên miền (không phải quản trị viên) cho mỗi dịch vụ. Bị cáo buộc nếu bạn sử dụng tài khoản miền khi cài đặt, trình cài đặt sẽ đặt mọi quyền cần thiết cho bạn.

Nếu thay đổi tài khoản dịch vụ trên bản cài đặt hiện có từ tài khoản ảo sang tài khoản miền, khuyến nghị là sử dụng trình quản lý cấu hình SQL Server để đặt tài khoản dịch vụ mới. Bị cáo buộc điều này sẽ đặt bất kỳ quyền yêu cầu cho bạn.

Tôi vừa thử thay đổi tài khoản dịch vụ trong bản cài đặt hiện có thành tài khoản miền và nó sẽ gây ra lỗi đăng nhập cho đến khi tôi cấp quyền tài khoản log on as service, điều này mâu thuẫn với phần mà trình quản lý cấu hình SQL Server sẽ đặt bất kỳ quyền yêu cầu nào. (Mặc dù tôi không chắc liệu GPO có thể đã can thiệp vào việc thiết lập chính sách bảo mật cục bộ này hay không)

Microsoft cung cấp danh sách các quyền mà Thiết lập Máy chủ SQL cấp trên trang này .

Nhưng tôi không rõ liệu đó có phải là điều tôi nên làm thủ công cho người dùng tôi tạo để chạy dịch vụ hay không, hoặc sử dụng trình quản lý cấu hình SQL có nên tự động đặt các quyền này hay không.

SQL Server 2014, Bộ kiểm soát miền có trên Windows Server 2008 R2.


Phiên bản nào của SQL? Đây có phải là môi trường AD không? Nếu vậy, cấp miền là gì?
Kinda Villyard

Cảm ơn, tôi đã thêm các phiên bản cho câu hỏi. SQL Server 2014, Bộ kiểm soát miền nằm trên cấp độ chức năng của Windows Server 2008 R2

1
Điều này không giống như tài liệu mơ hồ với tôi. Điều này có vẻ khá toàn diện. - msdn.microsoft.com/en-us/l

Vâng, tôi đồng ý, nói chung các tài liệu là tốt nhưng phần tôi không chắc chắn là mơ hồ là những gì tôi có nghĩa. Bạn nói đúng, bởi trong tài liệu lớn rất chi tiết.
chó mận

Câu trả lời:


10

Tôi thường phải thiết lập MS SQL Server và tự hỏi liệu có ai có thể cung cấp lời khuyên về cách định cấu hình các tài khoản mà các dịch vụ sẽ chạy như không. IMO điều này đã được Microsoft ghi lại một cách mơ hồ, trong khi họ chỉ cho bạn đi đúng hướng tôi chưa bao giờ có thể tìm thấy bất kỳ ví dụ cụ thể nào.

Nó thực sự được ghi lại khá kỹ lưỡng: http://msdn.microsoft.com/en-us/l Library / ms143504.aspx

Có một phần mà bạn không chắc chắn về?

Đối với các triển khai đơn giản \ môi trường phát triển, bạn có thể sử dụng tài khoản ảo mặc định mà trình cài đặt sử dụng: ví dụ: NT SERVICE \ MSSQLSERVER

Điều này sẽ phụ thuộc vào môi trường. Cá nhân tôi ghét việc tìm một máy chủ mà ai đó thiết lập bằng tài khoản cục bộ và yêu cầu được truy cập vào tài nguyên mạng một thời gian trong tương lai, trong số các vấn đề khác.

Để sản xuất và trong môi trường miền, bạn nên sử dụng Tài khoản dịch vụ được quản lý hoặc tạo tài khoản người dùng tên miền (không phải quản trị viên) cho mỗi dịch vụ.

Một lần nữa, tùy thuộc, nhưng nói chung tôi sẽ đồng ý (một ví dụ truy cập sẽ là các nhóm khả dụng khi sử dụng một tài khoản miền duy nhất trong tất cả các trường hợp).

Bị cáo buộc nếu bạn sử dụng tài khoản miền khi cài đặt, trình cài đặt sẽ đặt mọi quyền cần thiết cho bạn.

Trừ khi có một thất bại, vv, nó sẽ làm như vậy. Tôi không chắc tại sao phần "Bị cáo buộc".

Nếu thay đổi tài khoản dịch vụ trên bản cài đặt hiện có từ tài khoản ảo sang tài khoản miền, khuyến nghị là sử dụng trình quản lý cấu hình SQL Server để đặt tài khoản dịch vụ mới. Bị cáo buộc điều này sẽ đặt bất kỳ quyền yêu cầu cho bạn.

Khi thay đổi bất kỳ dịch vụ nào cho SQL Server, luôn sử dụng SSCM. Luôn luôn. Giai đoạn = Stage. Nó sẽ đặt quyền cho tài khoản mới về những điều cơ bản. Nếu trước khi tài khoản hệ thống cục bộ được sử dụng và không có sự cho phép đối với mọi thứ trên hệ thống, tôi sẽ mong đợi một cái gì đó không có quyền sau khi thay đổi do bảo mật được kiểm soát chặt chẽ hơn. Đó không phải là lỗi SSCM của SQL Server, đó là lỗi của quản trị viên khi không cấp quyền EXTRA thích hợp (chẳng hạn như truy cập chia sẻ mạng, thư mục bị hạn chế, các mục bên ngoài mục đích cài đặt SQL Server, v.v.)

Tôi vừa thử thay đổi tài khoản dịch vụ trong bản cài đặt hiện có thành tài khoản miền và nó sẽ gây ra lỗi đăng nhập cho đến khi tôi cấp quyền cho tài khoản 'đăng nhập dưới dạng dịch vụ', điều này mâu thuẫn với phần mà trình quản lý cấu hình SQL Server sẽ đặt bất kỳ yêu cầu nào quyền. (Mặc dù tôi không chắc liệu GPO có thể đã can thiệp vào việc thiết lập chính sách bảo mật cục bộ này hay không)

Âm thanh như GPO đang gây ra sự cố (IMHO). Sẽ không phải là lần đầu tiên :)

Vì vậy, câu hỏi của tôi là, nếu bạn tạo một tài khoản người dùng miền mới cho mỗi quy trình SQL Server thì nên đặt quyền gì cho mỗi tài khoản?

Tôi rõ ràng sẽ đặt bất kỳ quyền nào bên ngoài những quyền được nêu trong liên kết msDN mà tôi có ở trên (cũng được cung cấp bởi @joeqwerty và trong OP của bạn). Ví dụ: trên thư mục "sao lưu" trên mạng chia sẻ, trên ổ đĩa mới được thêm vào để chứa cơ sở dữ liệu mới (nơi thiết lập đã chạy nhưng ổ đĩa không tồn tại), v.v.

Nhưng tôi không rõ liệu đó có phải là điều tôi nên làm thủ công cho người dùng tôi tạo để chạy dịch vụ hay không, hoặc sử dụng trình quản lý cấu hình SQL có nên tự động đặt các quyền này hay không.

Trừ khi một cái gì đó cực kỳ bị hỏng với máy chủ, những thứ này không cần phải được cung cấp bằng tay.


Cảm ơn trả lời của bạn, tôi đồng ý với ý kiến ​​của bạn. Tôi thiết lập máy chủ SQL trên một máy ảo sạch khác để kiểm tra điều này và tôi đã có thể trao đổi từ tài khoản ảo NT SERVICE / MSSQLSERVER sang tài khoản người dùng miền và nó không hoạt động. Vì vậy, tôi nghĩ rằng câu trả lời là như bạn đã nói, hãy sử dụng Trình quản lý cấu hình SQL Server để thay đổi đăng nhập tài khoản người dùng dịch vụ và không cần thêm quyền.
chó mận

Một nhận xét bổ sung, xin lỗi tôi có thể làm cho câu hỏi của tôi rõ ràng hơn bằng cách đặt điểm chính của tôi lên đầu bài mà tôi sẽ làm trong tương lai. Câu hỏi chính tôi không chắc chắn là; [nếu bạn tạo một tài khoản người dùng miền mới cho mỗi quy trình Máy chủ SQL, thì nên đặt quyền nào cho mỗi tài khoản? ...]. Lý do tôi cảm thấy tài liệu này rất mơ hồ trong phần này là vì có một danh sách các quyền được đặt, nhưng không rõ liệu SSCM có đặt các quyền này cho bạn hay không.
mận 20/1/2015

@plumdog Mỗi bình luận thứ hai của bạn, hầu hết các quyền được trình cài đặt đưa ra. Tài khoản dịch vụ ảo và sid được gắn với điều đó, đó là lý do tại sao SSCM phải luôn được sử dụng để việc chuyển vào và ra khỏi các quyền được ràng buộc được thực hiện chính xác, trong số những điều khác như bảo mật được liên kết với mã hóa khóa chính của dịch vụ, v.v. .
Sean Gallardy
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.