[英]C# Windows application: connection string to connect to remote sql server 2008 using windows authentication
[英]Unable to connect to SQL Server using a connection string with Windows authentication
在遵循此特定教程( 教程 )之后,我嘗試使用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
,但仍然無法在本地連接到該實例。
這是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$'.
就我的代碼而言(可以在Tutorial鏈接中看到),如果有幫助,似乎總是在引用line 15
:
Employee employee = employeeContext.Employees.Single(emp => emp.EmployeeId == id);
更新2
SSMS安全性登錄名和用戶
更新之后,您是否創建了映射到您的用戶/角色的登錄名? 我總是傾向於忽略這一點。
要創建此登錄將引用的用戶:
您也可以嘗試使用UDL文件進行連接:只需創建一個空白文檔並將擴展名重命名為.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
最后,將您想要的角色更改為用戶想要的角色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.