2011-12-16 122 views
1

我在SQLSERVER (2008 R2 EXPRESS)管理員列表中。我在我的機器上擔任管理員角色。我可以手動連接到SQLSERVER(通過Management Tools)使用ServerName(在我的情況下它是S-PROG-T\SQLEXPRESS)。在安裝過程中,我決定只使用Windows Authentication模式。我無法連接到SS。無法連接到SQLSERVER 2008 R2 EXPRESS

錯誤消息:Login failed for user S-PROG-T\admin. Cannot open database 'ProjectDB' requested by the login.

我用下面的配置NHibernate

<session-factory> 
    <property name="connection.provider"> 
     NHibernate.Connection.DriverConnectionProvider 
    </property> 
    <property name="dialect"> 
     NHibernate.Dialect.MsSql2008Dialect 
    </property> 
    <property name="connection.driver_class"> 
     NHibernate.Driver.Sql2008ClientDriver 
    </property> 
    <property name="connection.connection_string"> 
     Data Source=S-PROG-T\SQLEXPRESS;Initial Catalog=ProjectDB;Integrated Security=SSPI 
    </property> 
    <property name="show_sql"> 
     true 
    </property> 
    <mapping resource="Project.Domain.Model.Entities.Mappings.Vehicle.hbm.xml" assembly="Project.Domain" /> 
</session-factory> 

而且我試着使用.\SQLEXPRESS數據源進行連接。入站規則不限制SSMS。

怎麼了? 謝謝!

編輯:單元測試

一切(nhibernate配置和架構出口試行)開始我的單元測試中(我不知道這是否事項)。

[TestFixture] 
public class VehicleFixture 
{ 
    [Test] 
    public void TestSchemaExport() 
    { 
     new SchemaExport(new Configuration().Configure()).Execute(false, true, false); 
    } 
} 

編輯:日誌信息

我發現了一個日誌中的下一個信息(路徑:%ProgramFiles%\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Log\):

Error: 18456; State: 38.

Login failed for user ‘S-PROG-T\Admin’.

Reason: Failed to open the explicitly specified database.

根據文章:http://sql-articles.com/articles/troubleshooting/troubleshooting-login-failed-error-18456/數據庫不存在或登錄無權訪問數據庫。

我完全困惑。我應該在我試圖導出模式之前創建數據庫(手動)(對不起,如果問題很傻)?

編輯:使用混合身份驗證模式

我已經設置混合模式身份驗證,並與serveradmin & sysadmin角色創建新的登錄。但仍然錯誤消息是相同的,除了用戶名。再次我可以用登錄名和密碼手動做同樣的事情(連接並創建數據庫)。

+0

你使用什麼編程語言? – ChrisBint 2011-12-16 13:42:25

+0

爲什麼「綜合安全」中有兩個空格? – 2011-12-16 13:48:55

回答

1

好的。我誤解了整個過程。一切都與認證,而不是連接字符串。我只是認爲模式導出代表數據庫自動創建,然後模式導出。所以我創建了一個數據庫併成功導出了一個模式。

-1

該網站將不會使用相同的身份,因此不會是管理員。你可以定義一個特定的身份,並設置你的ApplicationPool(或你自己的管理員帳戶)來使用它。或者,使用登錄名/密碼而不是集成安全性。

0

如果將數據庫更改爲'master',您可以使用NHibernate連接嗎?

是ProjectDB數據庫用戶S-PROG-T \ admin映射到您使用管理工具進行連接的服務器登錄嗎?

您可以使用屬性名稱=「connection」中的用戶/密碼組合連接到數據庫。connection_string」,而不是集成安全= SSPI

編輯你寫,你創建新的登錄,但仍 - 。登錄用於SERVER認證東西,你必須有數據庫用戶在ProjectDB映射到服務器登錄訪問數據庫

看看這些線:TSQL to Map User to Database

或在這裏讀到:http://www.nerdymusings.com/LPMArticle.asp?ID=41