2013-03-28 21 views
0

我有一個可行的連接字符串 - 那就是:如何將此連接字符串轉換爲使用SSPI安全性?

<add name="MyEntities" 
    providerName="System.Data.EntityClient" 
    connectionString="metadata= 
    res://*/; 
    provider=System.Data.SqlClient; 
    provider connection string=' 
    Data Source=localhost; 
    Initial Catalog=MyDb; 
    Integrated Security=False; 
    User Id=MyDbUser; 
    Password=123456; 
    MultipleActiveResultSets=True'" /> 

我設置這樣的用戶:

USE [master] 
GO 
IF EXISTS(SELECT * FROM sys.syslogins WHERE name = N'MyDbUser') 
    DROP LOGIN [MyDbUser]; 
GO 
CREATE LOGIN [MyDbUser] 
    WITH 
     PASSWORD=N'123456', 
     DEFAULT_DATABASE=[MyDb], 
     CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
GO 
-- Drop & recreate db-user 
USE [MyDb] 
GO 
IF EXISTS (SELECT * FROM sys.database_principals WHERE name = N'MyDbUser') 
    DROP USER [MyDbUser]; 
GO 
CREATE USER [MyDbUser] FOR LOGIN [MyDbUser] 
GO 
EXEC sp_addrolemember N'db_owner', N'MyDbUser' 
GO 

如果我更改連接字符串使用SSPI安全性,它不再作品。作爲一個SQL noob,如果有人能提供一些關於我需要做什麼其他更改的建議,我會很感激。

在此先感謝。

回答

0

你試過了嗎?

<add name="MyEntities" 
    providerName="System.Data.EntityClient" 
    connectionString="metadata= 
    res://*/; 
    provider=System.Data.SqlClient; 
    provider connection string=' 
    Data Source=localhost; 
    Initial Catalog=MyDb; 
    Integrated Security=True; 
    MultipleActiveResultSets=True'" 
/> 

創建喜歡的用戶:

CREATE LOGIN [MYDOMAIN\MyUser] 
FROM WINDOWS; 

然後,你需要確定連接到數據庫的過程是在Windows中運行爲[MYDOMAIN \ MYUSER。

做不到這一點,對於如何在http://www.allenkinsel.com/archive/2010/06/sql-server-and-sspi-handshake-failed-error-hell/

0

需要與SQL Server的解決SSPI連接問題是一個Windows用戶,而不是一個SQL Server用戶帶來極大的博客條目。 See MSDN

「集成安全性 - 錯誤時,在連接中指定用戶標識和密碼。如果爲true,則使用當前的Windows帳戶憑據進行身份驗證。強烈推薦),這相當於真實。「

相關問題