使用 MSMQ 和 Windows 服务设置帐户权限

使用 MSMQ 和 Windows 服务设置帐户权限

我是一名开发人员,需要一些指导来为以下内容设置适当的帐户/权限,所以请耐心等待。

我正在创建一个私有 MS 队列并在 Win 2K3 服务器上安装 Windows 服务。为了使 Windows 服务能够读取/写入队列,Windows 服务应该在哪种类型的组帐户下运行 -(可能是本地服务)?例如,如果我使用本地服务帐户安装 Windows 服务,则需要转到私有队列并将本地服务组添加到队列权限以将其设置为读/写访问,对吗?我的一个朋友提到创建一个不同的组并向该组添加帐户,然后将组分配给队列。如果我下面的假设是正确的,这与使用本地服务组有何不同?

(场景 1)我想我需要创建一个用户帐户并使该帐户成为本地服务的成员。如果我的假设正确,那么我将转到队列并将本地服务组添加到队列权限。对吗?

(场景 2)如果我决定加入一个新组,我可以使用该组来运行 Windows 服务吗?如果可以,我该如何设置适当的权限来运行 Windows 服务?

我认为创建一个组是一个好主意,因为我将把这个解决方案部署到两个 w2k3 盒子里。

答案1

如果在运行服务之前手动创建队列,那么是的 - 您只需要在每台机器上都有一个对队列具有 R/W 访问权限的帐户(组或用户,您的选择)。

你不需要偏僻的发送传入队列的权限 - 这已经被处理好了(如果队列是使用默认值创建的,那么每个人都可以向队列发送消息。)

所需的只是对每台机器的本地私有队列上的本地服务帐户的 R/W/mgmt 权限 - 它们不必是同一个帐户。

请注意,私有队列不会在机器之间共享 - 如果您未在 AD 中发布它们,则没有队列。

因此机器 1 的 /private/QueueX$ 队列与机器 2 的 /private/QueueX$ 队列无关。

我们广泛使用 MSMQ,但我们的应用程序根据需要创建队列;虽然这总体上更加灵活,但它需要此服务帐户的更多权限:对 MSMQ 服务的完全控制。

相关内容