0

我正在尝试通过本地 IIS 中托管的 WCF 服务调用 SQL Server 2012(本地安装)中的 SSIS 包。WCF 服务正在使用 tcp 绑定,并且 IIS 应用程序池在 NETWORKSERVICE 下运行。我正在使用控制台应用程序来测试 WCF 服务。控制台应用程序调用 WCF 服务后,WCF 服务尝试调用本地 SQL Server 上的 SSIS 包并抛出“System.Data.SqlClient.SqlException:用户 'MYDOMAIN\MYMACHINENAME$' 登录失败”。

WCF 服务在 SQL Server 连接字符串中使用集成安全性,因为无法使用 sql 帐户调用集成服务。我为 NETWORKSERVICE 和 MYDOMAIN\MYMACHINENAME$ 创建了 SQL 登录名,并授予他们对数据库的 dbo 权限和对 SSIS 目录数据库 SSISDB 的 dbo + ssis_admin 权限。根据 MSDN,创建 SQL 登录应该可以工作,但不能正常工作(http://msdn.microsoft.com/en-us/library/ms998320.aspx#paght000015_sqlserver)。

是否需要在 SQL Server 中完成其他任何操作以允许帐户访问?在开发和生产中,计划是创建一个域服务帐户并在服务帐户下运行应用程序池。这种方法有其他选择吗?

我的环境信息如下。预先感谢您的帮助。

Windows 7 企业版
SQL Server 2012
SSIS 2012
.NET 4.5

4

1 回答 1

0

当您说“我为 NETWORKSERVICE 和 MYDOMAIN\MYMACHINENAME$ 创建了 SQL 登录”时,您实际上是指您创建了经过 SQL Server 身份验证的登录,还是基于这些 Windows 帐户创建了登录?

如果您通过网络访问 SQL 服务器,则需要使用 Windows 身份验证为 domain\servername$ 创建登录,而不是 SQL 登录。

于 2013-06-11T09:03:04.270 回答