【发布时间】:2015-10-31 17:28:57
【问题描述】:
我有这种情况,我需要用户能够登录到机器并安排一些任务(例如运行查询并获取结果并保存它们)以供将来运行。
让我举个例子。例如,我有一个服务。用户 (User1)(他是域用户)连接到此服务并向我的服务调用发送 SQL 查询、服务器名称和数据库名称)。该服务需要在这里做的是创建一个任务,该任务将在白天的某个未来时间运行(可能在晚上,即:晚上 11 点)。此任务在晚上 11 点运行查询时将连接到先前传递的服务器名称和数据库名称上的 SQL 并触发查询,然后将结果保存在 excel 中。运行时的查询应使用用户 (User1) 上下文,以便在有任何受限权限时应遵守该上下文。如果我使用 MDX 查询,也需要这样做。
部署此服务的服务器是加入域的机器。该服务目前在网络服务上运行,我可以看到调用用户。我不想在服务器中将所有用户都添加为管理员。
我尝试动态创建计划任务,在授予对本地策略的访问权限(作为批处理服务登录)和对 C:\Windows\system32\tasks 下的文件夹的访问权限给组(创建为这种类型的用户,所有用户都属于这个组)。选项“运行任务时,使用以下用户帐户”被设置为调用者用户(User1),但我无法设置选项“无论用户是否登录都运行”。这个选项是必需的,因为当我需要触发查询时,它应该在 User1 下工作,并且 user1 永远不会登录到机器。
任何建议都会有所帮助。如果有任何其他方法更适合我的要求,我也愿意不采用计划任务方法的想法。
谢谢。 Girija Shankar Beuria
【问题讨论】:
标签: c# sql-server scheduled-tasks background-process