Ошибка входа в базу данных для пользователя - PullRequest
0 голосов
/ 28 декабря 2018

Мне известно, что этот вопрос повторяется время от времени, но я пробовал здесь почти каждый ответ, и я все еще сталкиваюсь с проблемой с кодом ниже, который пытается подключиться к моему MS SQL Server 2014:

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "(LocalDB)\\v11.0";
builder.UserID = "LOGIN";
builder.Password = "PASSWORD";
builder.InitialCatalog = "DATABASE";
builder.IntegratedSecurity = false;
SqlConnection connection = new SqlConnection(builder.ConnectionString);
connection.Open();

Я создал ЛОГИН пользователя с паролем ПАРОЛЬ:

CREATE LOGIN [LOGIN] WITH
PASSWORD=N'PASSWORD',
DEFAULT_DATABASE=[DATABASE],
DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=ON

и включил учетную запись.

alter login LOGIN enable

Я проверил, находится ли пользователь в моей Microsoft SQL Server 2014 Management Studio в папке «Безопасность» и вПапка Database Secuirty Users также содержит имя пользователя.

Я также попытался использовать проверку подлинности Windows в Visual Studio для подключения к базе данных, и мне это удалось.Однако я не могу повторить этот процесс подключения с моим кодом выше, даже когда я пытаюсь выполнить код ниже:

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "(LocalDB)\\v11.0";
builder.InitialCatalog = "DATABASE";
builder.IntegratedSecurity = true;
SqlConnection connection = new SqlConnection(builder.ConnectionString);
connection.Open();

Я получаю следующую ошибку:

System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'LOGIN'.
    in System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)
    in System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
    in System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
    in System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
    in System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
    in System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
    in System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
    in System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
    in System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
    in System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
    in System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
    in System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
    in System.Data.SqlClient.SqlConnection.Open()

Эта база данных новая на моемсервер;Я сделал новую установку вчера, и я использовал параметры установки по умолчанию, насколько я помню.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Я хотел бы поблагодарить вас за ваши ответы.Решение в коде ниже:

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = ".";            // DataSource changed             
builder.InitialCatalog = "DATABASE";
builder.IntegratedSecurity = true;
SqlConnection connection = new SqlConnection(builder.ConnectionString);
connection.Open();
0 голосов
/ 28 декабря 2018

Существует несколько типов аутентификации в SQL Server, таких как Windows, сервер и т. Д.

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

Вы можете проверить настройки сервера SQL:

Щелкните правой кнопкой мыши по имени сервера -> Свойства -> Безопасность:

Аутентификация в смешанном режиме должна разрешать как Windows, так и сервер:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...