Điểm:0

Cách bắt đầu một dịch vụ mà không cần thay đổi mật khẩu

lá cờ ng

Chúng tôi đã phát triển một phần mềm sao lưu cho Máy chủ SQL (2019) chạy trên Windows Server 2019 cho một khách hàng.
Ứng dụng (.net Windows Forms) có giao diện để định cấu hình sao lưu (ví dụ: chọn ngày để sao lưu, thời gian sao lưu mỗi ngày, v.v.) và cấu hình khác (dữ liệu đến Máy chủ SMTP, danh sách phân phối thư, v.v.). Hơn nữa, máy khách chứa các chức năng để khôi phục cơ sở dữ liệu. Các bản sao lưu được bắt đầu trong một bộ đếm thời gian.
Ứng dụng hoạt động tốt nhưng phải chạy 24/7/365.
Mô tả vấn đề:
Ứng dụng chạy trên máy chủ của khách hàng và khách hàng không cho phép các tài khoản có mật khẩu không bao giờ hết hạn.
Ngoài ra, máy chủ (ít nhất) được tự động khởi động lại hai tuần một lần. Vì vậy... chúng tôi phải truy cập vào máy chủ và khởi động ứng dụng khách mới của mình ít nhất hai tuần một lần, điều này thật không hay chút nào.
Do đó, chúng tôi nghĩ đến việc "chia" Ứng dụng sao lưu thành hai phần:

  • Máy khách Windows (với các chức năng sao lưu và E-Mail đã tắt)
  • Dịch vụ Windows (đọc tệp cấu hình khi khởi động, thực hiện sao lưu, gửi E-Mail)

=> Mục tiêu: Dịch vụ sao lưu được khởi động tự động sau khi khởi động lại máy chủ (không cần khởi động thủ công).
nhu cầu:
Dịch vụ cần có quyền truy cập vào tệp cấu hình đĩa cục bộ (đọc (.ini), lưu trữ các bản sao lưu), SQL-Server (được cài đặt trên cùng một máy chủ) và SMTP-Server (đặt trên máy chủ của khách hàng khác) để có thể gửi E-Mails.
Như đã đề cập ở trên, mục tiêu là sử dụng "tài khoản hệ thống" không có mật khẩu (phải được thay đổi định kỳ).
Chúng tôi là nhà phát triển, không phải kỹ sư hệ thống... do đó, "câu hỏi dành cho người mới bắt đầu":
Theo như chúng tôi biết, có các tài khoản Hệ thống dành cho "Hệ thống cục bộ", "Dịch vụ cục bộ" và "Dịch vụ mạng" (có thể có nhiều hơn ...).
Câu hỏi:
Một trong những tài khoản được đề cập ở trên có tất cả các quyền cần thiết (hoặc có tài khoản khác) không?

Cảm ơn!

Điểm:1
lá cờ cn

Có, bạn hoàn toàn cần tách biệt các phần "cấu hình" và "dịch vụ" tương tác. Phần Dịch vụ cần chạy mọi lúc, phần cấu hình chỉ khi cần.

Ý tưởng về việc có một ứng dụng chạy "trên bảng điều khiển" của Windows Server ngày nay thật rắc rối và trở nên khó khăn hơn với mỗi phiên bản Windows. Đã tạo ra các Dịch vụ Windows vẫn đang trong quá trình Sản xuất 20 năm, tôi hơi ngạc nhiên khi bạn không gặp phải "thử thách" này trong quá trình phát triển và thử nghiệm.

Nhưng dù sao ...

Ứng dụng chạy trên máy chủ của khách hàng và khách hàng không cho phép các tài khoản có mật khẩu không bao giờ hết hạn.

Cho rằng Windows hỗ trợ nhiều tài khoản "hệ thống" có mật khẩu không bao giờ hết hạn, đây là một "Yêu cầu" kỳ lạ đã gây ra cho ứng dụng của bạn.

Câu hỏi: Đây có phải là "Yêu cầu" thực sự liên quan, thích hợp?
Để sử dụng ứng dụng "cấu hình", bạn cần phải đăng nhập vào máy, vì vậy bạn sẽ sử dụng bất kỳ thông tin đăng nhập nào bạn được cung cấp cho mục đích này - thông tin đăng nhập, tương tác, Người dùng cụ thể, thông tin đăng nhập Nên hết hạn định kỳ.

Phần "dịch vụ" chỉ nên chạy và thực hiện các công việc.
Nếu các tài khoản hệ thống này có mật khẩu hết hạn, hệ sinh thái Windows sẽ hoàn toàn không sử dụng được.

Dịch vụ cần có quyền truy cập vào tệp cấu hình đĩa cục bộ (đọc (.ini), lưu trữ các bản sao lưu) ...

Phải, chắc chắn rồi.
Bất kỳ tài khoản "Dịch vụ" nào cũng phải có cấp độ truy cập này.

... và đến SMTP-Server ... để có thể gửi E-Mail.

Truy cập vào bất cứ thứ gì "tắt" hộp yêu cầu nhận biết mạng tài khoản.
Dịch vụ mạng có lẽ là đặt cược tốt nhất của bạn.

... đến Máy chủ SQL (được cài đặt trên cùng một máy chủ) ...

Nguy hiểm, Will Robinson!
Bạn có nghiêm túc nói rằng tiện ích "sao lưu" của bạn đang sử dụng và lưu trữ Sao lưu máy chủ SQL trên cùng một máy như chính phiên bản SQL Server?

Điều này làm suy yếu toàn bộ giải pháp của bạn.

Nếu bạn bị mất máy mà SQL Server đang chạy, thì bạn cũng sẽ mất sao lưu của cơ sở dữ liệu của bạn cũng như, vì chỉ có lý do tồn tại các bản sao lưu là để đảm bảo rằng bạn có thể lấy lại cơ sở dữ liệu bất kể trở nên tồi tệ, sai lầm khủng khiếp, thì "giải pháp dự phòng" của bạn hoàn toàn bị xâm phạm.
Bạn chắc chắn rồi phải lấy các bản sao lưu từ máy chủ đó sang một máy khác, Đi xa khỏi cơ sở dữ liệu mà họ đang bảo vệ.

FredyWenger avatar
lá cờ ng
Cảm ơn vì đã trả lời. Vì vậy.. tôi nghĩ, tôi nên sử dụng Dịch vụ Mạng. Về các bản sao lưu trên cùng một máy: Về cơ bản, bạn đúng, nhưng máy chủ là máy chủ ẢO được sao lưu hàng giờ từ CNTT của khách hàng. Vì vậy, ... chúng tôi đã có một bản sao lưu (của toàn bộ máy chủ), nhưng bộ phận CNTT của khách hàng bắt buộc muốn có một bản sao lưu hợp lý trước. Vì vậy, việc sao lưu các bản sao lưu được đảm bảo.
Phill  W. avatar
lá cờ cn
Cơ sở dữ liệu != Tệp. Một bản sao lưu của máy chủ chỉ tốt vào thời điểm nó được thực hiện. Các bản sao lưu của SQL Server cho phép / độ mịn cao hơn / mức độ chi tiết của Phục hồi. Và chỉ vì một cái gì đó là VM Guest KHÔNG làm cho nó an toàn khỏi *VM Controller* quyết định, một ngày nào đó, ngẫu nhiên "viết nguệch ngoạc" trên tất cả các đĩa của nó - cùng các đĩa chứa ảnh đĩa của các máy VM Guest đang chạy, hoàn toàn chuyển chúng vào thùng rác trong quá trình này! Đã ở đó. Đã thấy nó. Không đẹp. Tôi muốn đề xuất rằng Chiến lược khôi phục của bạn cần một chút "tinh chỉnh".
FredyWenger avatar
lá cờ ng
Tôi đã phát triển thành công dịch vụ windows và khởi động nó trong dịch vụ mạng. Mọi thứ đều hoạt động, nhưng tôi phải cấp thêm một số quyền cho dịch vụ mạng trong hệ thống tệp. Tôi đã chấp nhận câu trả lời của bạn bây giờ. Cảm ơn một lần nữa.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.