3

连接字符串:

Server=(local);Database=DigitSite.mdf;Integrated Security=true 

我尝试了一堆其他连接字符串,但它们有相同的错误,或者甚至没有尝试登录到我提供的数据库。我不确定此时这是 IIS 问题还是 sql 问题或连接字符串问题。

在 IIS7 中,此应用程序池设置为本地系统

我的虚拟目录映射正确

对于路径凭据,我使用了“应用程序用户(直通身份验证)并且我指定了一个用户但都没有工作,在身份验证中我关闭了匿名身份验证并打开了模拟

在 sql 中,我已确保我尝试登录的用户作为“数据库所有者”对该数据库具有适当的安全性。我已经尝试创建一个用户以(sql Server 2008R2)身份登录到 sql,但是在尝试登录该用户时出现错误。有什么建议吗?

这似乎是一个常见问题,但我确实花了 5 个多小时来研究这个问题并搞砸了设置,所以我对如何让它发挥作用有点不知所措。谢谢。

4

2 回答 2

3

SQL Server 通常使用逻辑数据库名称,例如,您在服务器实例上创建一个数据库(或者您在 SQL Server Management Studio 中附加一个现有.mdf文件并给它一个逻辑数据库名称),而您实际上不必处理文件名等.

所以你的连接字符串应该是这样的:

Server=(local);Database=DigitSite;Integrated Security=true 

仅使用逻辑数据库名称DigitSite- 而不是实际文件名(SQL Server 将为您管理文件 - 不要乱用它!)

于 2012-10-19T05:06:03.137 回答
1

SQL Server 有两个为登录分配权限的地方。一种在服务器级别,一种在数据库级别。您必须在这两个位置都具有适当的权限。

对于这个错误,看起来服务器上的登录很好,但数据库不喜欢登录。您正在使用“Lenaire-PC\Lenaire”的 Windows 登录名,因此请确保该用户是“db_owner”角色的成员。

USE [DigiSite]
GO
EXEC sp_addrolemember N'db_owner', N'Lenaire-PC\Lenaire'

如果这不起作用,您将需要提供有关您的设置、SQL 版本等的更多信息。这似乎不寻常。

此外,请确保构建过程或 Visual Studio 魔法不会在您每次构建项目时覆盖您的数据库更改。为了解决这个问题,我将数据库永久附加到服务器。

于 2012-10-19T00:01:31.757 回答