首页 > 解决方案 > Azure SQL 托管实例 - 运行代理作业访问服务器共享上的 exe 文件

问题描述

我们最近将一个基于 SQL 的程序移至 Azure 托管实例。一直在解决已发现的问题。我们还启动了一个 Azure 服务器 2019 虚拟机,用于托管 SQL 管理工作室和该程序的本地安装。

我们遇到了什么:

此应用程序需要使用 SQL Server 代理进行作业设置。SSMS 中的作业步骤设置:

类型是操作系统 (CmdExec)

运行方式的唯一选择是“SQL Server 代理服务帐户”

至于命令,基本上它需要访问服务器上的可执行文件,比如说: C:\Program Files (x86)\ProgramName\ProgramModule.exe并传递 SQL 服务器名称和数据库。

完整的命令:

"C:\Program Files (x86)\ProgramName\ProgramModule.exe" /ServerName "companysql.12fed96a1246.database.windows.net" /DatabaseName "App_Core"

我也尝试将它作为共享而不是直接路径运行,因为 SQL 服务器本身是一个托管实例,而不是直接存储在那里。我还授予“所有人”对 NTFS 权限和共享权限的完全权限。

每次我运行该作业时,我都会失败,原因是“系统找不到指定的文件”,并试图将其作为托管实例服务帐户运行,类似于DB5B2\WF-0IMUweFkFPhQUr6m.

这对我访问文件来说似乎是一个身份验证错误,因为该帐户在本地不存在。

我的问题是,由于我只能作为 SQL Server 代理服务帐户运行该作业,我该怎么做才能对其进行身份验证?我是否将其移动到 blob 存储或其他东西?如果我确实将它移动到 blob 存储,它可以从那里执行吗?或者我什至可以授予 SQL 代理服务帐户权限吗?

标签: azuresql-agent-jobazure-sql-managed-instance

解决方案


推荐阅读