Пользователь не связан с ошибкой подключения SQL - PullRequest
0 голосов
/ 24 октября 2011

Я получаю сообщение об ошибке ниже, что пользователь не связан с подключением доверенного сервера SQL. Это выглядело бы так, как будто я вошел в систему, используя свои учетные данные Windows (это локальная учетная запись). Я написал приложение на доменном компьютере и перенес его на свой ноутбук для тестирования. Ноутбук не находится в домене, мой web.config указан ниже. Я могу войти на SQL-сервер под учетной записью, которую я использую, и иметь полный доступ к базе данных. Сервер настроен для смешанной аутентификации. Я использую Windows 7 с iis 7.5, отлаживаю его в Visual Studio 2010. У кого-нибудь есть идеи по поводу того, что происходит?

Web.config

<add name="MediaTrackerConnectionString" connectionString="Data Source=myserver.full.domain.com;Initial Catalog=MediaTracker;" providerName="System.Data.SqlClient"/>

На моей странице у меня есть:

           mediaConnection = new SqlConnection("user id=DOMAIN\user;" +
                      "password=XXXXXX;server=myserver.full.domain.com;" +
                      "initial catalog=MediaTracker; " +
                      "connection timeout=30");

Ошибка, которую я получаю:

Server Error in '/' Application.

Login failed for user ''. The user is not associated with a trusted SQL Server connection.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[SqlException (0x80131904): Login failed for user ''. The user is not associated with a trusted SQL Server connection.]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5064474
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275
   System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35
   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) +183
   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) +239
   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +195
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +232
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +185
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +33
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +524
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +479
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +108
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
   System.Data.SqlClient.SqlConnection.Open() +125
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +123
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +319
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92
   System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1618
   System.Web.UI.WebControls.BaseDataList.GetData() +56
   System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +177
   System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +64
   System.Web.UI.WebControls.BaseDataList.DataBind() +55
   System.Web.UI.WebControls.BaseDataList.EnsureDataBound() +78
   System.Web.UI.WebControls.BaseDataList.CreateChildControls() +73
   System.Web.UI.Control.EnsureChildControls() +102
   System.Web.UI.Control.PreRenderRecursiveInternal() +42
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496

Ответы [ 2 ]

1 голос
/ 24 октября 2011

У вас есть полный доступ к экземпляру SQL Server, запущенному на вашем компьютере, но вам может потребоваться сопоставить вашу учетную запись с интерфейсом базы данных из приложения.

Щелкните правой кнопкой мыши базу данных и перейдите в свойства.Перейдите в раздел «Сопоставления пользователей» и назначьте соответствующие привилегии для своей учетной записи.

РЕДАКТИРОВАТЬ

Возможно, у вас включен режим аутентификации Windows, и в этом случае ваше приложение, вероятно, пытается подключиться к базе данных с помощью учетной записи NETWORK SERVICE.Удалите учетные данные из строки подключения и дайте разрешения учетной записи NETWORK SERVICE для доступа к базе данных.В противном случае убедитесь, что включена аутентификация в смешанном режиме, и используйте учетную запись sa для доступа к базе данных.

0 голосов
/ 24 октября 2011

Здесь - это несколько моментов, на которые вы хотите взглянуть. Просто чтобы повторить то, что говорится в статье:

  1. Если это сообщение об ошибке появляется каждый раз в приложении, использующем проверку подлинности Windows, и клиент и экземпляр SQL Server находятся на разных компьютерах, убедитесь, что учетная запись, которая используется для доступа к SQL Server, является учетной записью домена. Если используемая учетная запись является локальной учетной записью на клиентском компьютере, то это сообщение об ошибке будет появляться, поскольку компьютер с SQL Server и контроллер домена не могут распознать локальную учетную запись на другом компьютере.
  2. это сообщение об ошибке может появиться, если входящий в систему пользователь является учетной записью домена из другого, ненадежного домена из домена SQL Server.
  3. Это сообщение об ошибке может появиться сразу после смены пароля для учетной записи пользователя, пытающейся войти в систему.
  4. Если это сообщение об ошибке появляется спорадически только в приложении, использующем проверку подлинности Windows, это может произойти из-за того, что SQL Server не может связаться с контроллером домена для проверки пользователя.
  5. Это сообщение об ошибке может появляться последовательно для локальных подключений, использующих доверенную аутентификацию, когда SPN SQL Server не интерпретируется SSPI как принадлежащий локальному компьютеру. Это может быть вызвано неверной настройкой DNS или машиной с несколькими именами.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...