2013-03-15 22 views
0

我遇到了問題,用普通用戶和sql express數據庫測試我的c#WinForms應用程序。我認爲連接字符串中的SSPI是問題所在。集成安全性= SSPI是否需要管理員組中的Windows用戶?

編輯:問題是連接不會打開。這是我以普通用戶身份登錄時得到的異常(我沒有將它作爲管理員用戶在正確打開的位置)。

用戶'AsusWin7-64 \ SomeUser'登錄失敗。 在System.Data.SqlClient.SqlInternalConnection.OnError(SqlException異常,布爾breakConnection) 在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand的cmdHandler,SqlDataReader的數據流,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) 在System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(布爾enlistOK) 在System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(serverInfo serverInfo,字符串NEWPASSWORD,布爾ignoreSniOpenTimeout,TimeoutTimer超時的SqlConnection owningObject) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo,String newPassword,Boolean redirectedUserInstance,SqlConnection owningObject,SqlConnectionStri ng連接選項,TimeoutTimer超時) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject,TimeoutTimer timeout,SqlConnectionString connectionOptions,String newPassword,Boolean redirectctedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,SqlConnectionString connectionOptions,對象providerInfo,字符串NEWPASSWORD,SqlConnection的owningObject,布爾redirectedUserInstance) 在System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions選項,對象poolGroupProviderInfo,池類DBConnectionPool,的DbConnection owningConnection) 在System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection( DbConnection擁有連接,DbConnectionPool池,DbConnectionOptions選項) 在System.Data.ProviderBase。 DbConnectionPool.CreateObject(的DbConnection owningObject) 在System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(的DbConnection owningObject) 在System.Data.ProviderBase.DbConnectionPool.GetConnection(的DbConnection owningObject) 在System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection owningConnection) 在System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的) 在System.Data.SqlClient.SqlConnection.Open()

+0

您的問題的答案是「否」。然而,對於問題可能會提出任何建議是不可能的,因爲您沒有告訴我們問題是什麼 - 「我有問題測試」,而沒有告訴我們問題是什麼意思。請[編輯]您的問題以提供更多信息。就目前而言,這不是一個真正的問題。 – 2013-03-15 00:49:28

+0

@Ken - 增加了額外的信息。 – 2013-03-15 01:06:07

回答

1

答案在標題提出的問題是沒有,SSPI不需要管理員組中的Windows用戶。您遇到的失敗/錯誤的確切性質是什麼?

* 編輯:*你需要確保你的SQL Express數據庫配置爲接受Windows集成身份驗證,然後定義本地計算機用戶與權限(S)的數據庫,以適當的數據庫(S)表格和程序。

+0

+1。它只是要求用戶在SQL中進行配置以獲得訪問權限,管理員可以訪問,因爲通常會添加本地管理員組來完全訪問給定服務器上的每個SQL數據庫。 – 2013-03-15 01:08:45

+0

我的應用程序是針對非技術用戶的收縮包裝,我將永遠不會知道任何普通用戶,並且永遠不會有DBA設置權限。我的安裝將無法設置用戶。對普通用戶的任何建議表示讚賞有沒有辦法爲任何用戶設置sql express安全性? – 2013-03-15 01:25:09

+0

呃,不幸的是,如果您沒有管理或配置工具,則沒有多少選項。您可能需要考慮創建單個SQL Server用戶,並將該身份用於應用程序的數據訪問,然後將其編碼到應用程序中。不是任何理想的,但考慮到你的限制,它可能是你唯一的選擇。 – 2013-03-15 01:35:58

相關問題