遵循此特定教程(Tutorial)后,我尝试使用Windows身份验证连接到我的单个SQL Server Express实例
这是连接字符串:
<connectionStrings>
<add name="EmployeeContext"
connectionString="Server=.\SQLEXPRESSDAZ; database=Employee; Integrated Security = SSPI"
providerName="System.Data.SqlClient"/>
</connectionStrings>
我去过SSMS,并确保我的用户映射设置为db_owner
,并且Employee
表是用户的默认表:domain\name
。
但是,在看到许多示例之后,我尝试了许多键/值对组合,但出现错误:
系统找不到指定的文件
SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。
我什至尝试创建具有到Employee DB的用户映射的新用户,并将Integrated Security = SSPI
更改为user id
和password
,但仍然无法在本地连接到该实例。 / p>
这是SSMS的屏幕截图:
更新
我已将服务器属性更改为:Server=localhost\SQLEXPRESS
并添加了:Initial Catalog=dbo
,现在出现此错误:
Cannot open database "Employee" requested by the login. The login failed.
Login failed for user 'xxxxx\DESKTOP-AIE9SAE$'.
就我的代码而言(可以在“教程”链接中看到),如果有帮助,似乎总是在引用此line 15
:
Employee employee = employeeContext.Employees.Single(emp => emp.EmployeeId == id);
更新2
SSMS安全性登录名和用户
答案 0 :(得分:0)
更新之后,您是否创建了映射到您的用户/角色的登录名?我总是倾向于忽略这一点。
要创建此登录将引用的用户:
还可以尝试使用UDL file进行连接:只需创建一个空白文档并将扩展名重命名为.udl
,然后执行它即可。这是诊断应用程序外部SQL连接的一种非常简单的方法。
编辑:T-SQL脚本,然后添加用户:
创建登录名:
CREATE LOGIN [domain\DarrylGriffith] FROM WINDOWS
GO
创建用户:
Use [Employee];
GO
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'[darrylgriffith]')
BEGIN
CREATE USER [darrylgriffith] FOR LOGIN [domain\DarrylGriffith] WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember N'db_owner', N'[darrylgriffith]'
END;
GO
将结尾的角色更改为所需的用户最终角色。