如何通过Windows身份验证从msi安装程序连接mssql

时间:2014-09-16 12:45:43

标签: sql-server-2008 windows-installer windows-authentication visual-studio-setup-proje

我正在尝试通过visual studio设置项目创建一个Web应用程序设置。应用程序所需的数据库也作为自定义操作安装在设置中。用户未提供任何用户名和密码来连接数据库。设置自定义操作需要通过Windows身份验证连接数据库。但是当它试图连接数据库时,它会抛出异常 - 无法连接数据库。注意:Web安装正在安装时具有提升的访问权限。请提供一个解决方案,通过Web设置“自定义操作”通过Windows身份验证连接数据库。

2 个答案:

答案 0 :(得分:2)

问题很可能是VS Everyone安装中的自定义操作与系统帐户一起运行,而不是安装用户的帐户。我敢打赌,DB不允许SYSTEM对它做任何事情。

它们作为系统运行,因为它是提升它们所需要的。如果查看CustomAction表的文档:

http://msdn.microsoft.com/en-us/library/aa368069(v=vs.85).aspx

VS生成具有msidbCustomActionTypeNoImpersonate位的设置。其他工具可以让你说你是否想要模拟(安装用户),但VS没有,所以你需要使用像Orca这样的MSI编辑器在你找到正确的自定义动作后编辑CustomAction表。但它不会升高。从长远来看,如果你需要这种程度的控制,那么你应该寻找另一种设置构建工具。

答案 1 :(得分:1)

您想使用受信任的身份验证。此连接字符串将允许静默登录到SQL Server:

Provider=SQLNCLI10;Server=[ServerName OR ServerName\InstanceName];
Database=myDataBase;Trusted_Connection=yes;