SSISDB ASP.NET“用户‘DOMAIN\PCNAME$’登录失败”

问题描述 投票:0回答:3

我在 ASP.NET Web 表单中使用 Microsoft.SqlServer.Management.IntegrationServices 来访问 SSISDB 中的 SSIS 项目。在我自己的 PC 上进行本地测试,我可以从测试服务器访问该包并且运行良好。

当我尝试从测试服务器运行该网站时,出现了我的问题。同一个测试服务器使用 IIS 7 托管站点,并托管使用 Integration Services 存储包的 Sql Server 数据库。正如我所说,该软件包托管在服务器上,当我在我的 PC 上本地运行该网站时,一切正常。

当我测试运行该网站并尝试访问我得到的包时: System.Data.SqlClient.SqlException (0x80131904): 用户“[DOMAIN]\[PCNAME]$”登录失败。

我在连接字符串中使用集成安全性:

SqlConnection connection = new SqlConnection(@"Data Source=[Test_Server];Initial Catalog=master;Integrated Security=True;");
IntegrationServices integrationServices = new IntegrationServices(connection);

尝试连接时出现错误。

我尝试使用 Windows 身份验证将“[DOMAIN]\[PCNAME]$”添加为 Sql 登录名,并具有我能想到的所有权限。数据库 SSISDB 的用户映射具有 accessadmin、datareader、datawriter、owner、public 和 ssis admin。我知道并不是所有这些都需要,但我正在尝试一切。

我到数据库下的SSISDB,给了Connect、Execute、Select的登录权限。

在 Integration Services Catalogs 下,我在 SSISDB 目录下为我的文件夹授予了 Windows 用户 ('[DOMAIN]\[PCNAME]$') 登录读取、执行对象和读取对象的权限。

我向 SSISDataTransfer 项目授予了 Windows 用户读取、修改和执行的权限。

我没有主意,认为这可能是 IIS 的问题。它已安装并设置 Windows 身份验证。

有人有什么想法吗?我找到了有关如何使代码工作的帖子,但没有找到有关连接细节的帖子。谢谢!

asp.net sql-server iis-7 ssis ssis-2012
3个回答
0
投票

我最近遇到了类似的问题,并且我也使用过与 Web 应用程序一起使用的 SSIS 包。在我看来,您应该使用自定义用户帐户作为您的应用程序池帐户。并且您必须将此帐户添加到您的数据库服务器。当将应用程序池作为本地系统或网络服务运行时,用于连接到远程数据库服务器的帐户将为“DomainName\MachineName$”,对于尝试连接到 SQL Server 的每台计算机来说,该帐户都将有所不同。因此,您最好使用自定义用户帐户,而不是在 sql 中添加所有这些用户名。

其次,您的Web应用程序似乎没有与您的sql服务器在同一台计算机上运行,我认为这不起作用,因为您只能从同一台服务器调用SSIS包。


0
投票

要尝试的另一件事是向 SQL Server 添加凭据 - 在 SQL Server Management Studio 的“安全”-“凭据”中。该凭据将是您在其下成功运行该凭据的经过身份验证的用户。然后,在 SSIS 包的 SQL Server 代理中,进入作业步骤,并在“运行方式”下拉列表中,为您创建的用户选择新凭据。


0
投票

这个和Master Sacle out服务有关,停止该服务然后这个就会消失或者添加SSISDB数据库。

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.