Несоответствие паролей при входе в SQL Server

Хорошо, У меня есть классическое приложение asp, и у меня есть строка подключения, чтобы попытаться подключиться к db.

МОЯ строка подключения выглядит следующим образом:

 Provider=SQLOLEDB;Data Source=MYPC\MSSQLSERVER;Initial
 Catalog=mydb;database=mydb;User Id=me;Password=123

Теперь, когда я получаю доступ к db, хотя front-en, я получаю эту ошибку:

Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user 'me'. 

Я посмотрел в профайле sql, и я получил следующее:

 Login failed for user 'me'.  Reason: Password did not match that
 for the login provided. [CLIENT: <named pipe>]
 Error: 18456, State:8. 

Что я пробовал:

  • проверено 100 раз, что мой пароль действительно правильный.
  • Пробовал это: alter login me with check_policy off (даже не знаю, почему я это сделал)
  • Включить ВСЕ возможные разрешения для этой учетной записи в SSMS.

Обновление: 4. Я пробовал эту строку подключения: Provider=SQLOLEDB;Data Source=MYPC\MSSQLSERVER;Initial Catalog=mydb;database=mydb; Integrated Security = SSPI

И я получил эту ошибку:

Поставщик Microsoft OLE DB для ошибки SQL Server '80004005' Невозможно открыть базу данных mydb, запрошенную при входе в систему. Ошибка входа в систему.

Ответ 1

В моем случае у меня была строка подключения, работающая с SQL Server 2008 R2, но после обновления до SQL Server 2014 я получил указанную ошибку. Вот как моя исходная строка соединения была похожа:

server=.\SQLEXPRESS;database=mydb;User Id=me;Password=123

Вот строка подключения обновления, которая работает с 2014:

Integrated Security=SSPI;Data Source=.\SQLEXPRESS;Database=mydb;User Id=me;Password=123

Ответ 2

Измените строку подключения на:

Provider=SQLNCLI10;SERVER=MYPC\MSSQLSERVER;DataTypeCompatibility=80;Database=mydb;User Id=me;Password=123

Это сработало для меня. Попробуйте использовать IP, если сервер удален или (локально), если он находится на одном компьютере.

Надеюсь, что это поможет.

Ответ 3

Попробуйте в этом формате, как показано ниже.

strConnection ="Driver={SQL Server};Server=serverName;Database=DatabaseName;Uid=userID;Pwd=Password;"

Thanks
Jinesh Jain

Ответ 4

Вот ссылка на различные способы подключения к SQL Server 2005 с примерами строк подключения:

http://www.connectionstrings.com/sql-server-2005

Или подключиться к SQL Server 2008:

http://www.connectionstrings.com/sql-server-2008

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

Не знаю, какой метод вы используете, но есть два способа: OLE DB-приложения могут инициализировать объекты источника данных:

IDBInitialize::Initialize 

IDataInitialize::GetDataSource (seems like you are using this one)

Оба метода инициализируют те же свойства соединения OLE DB, но используются разные наборы ключевых слов.

Если вы используете IDBInitialize:: Initialize

the keyword for userid is UID
the keyword for password is PWD
NO Provider keyword may be used
Trusted_Connection keyword may be used and should be No

Если вы используете IDataInitialize:: GetDataSource

the keyword for userid is User ID
the keyword for password is Password
the Provider keyword is for SQL Server Native Client and it should be SQLNCLI10
the keyword for aunthentication Integrated Security you can remove it, or use SSPI only if you wish Windows authentication

Я сделал несколько изменений в исходной строке подключения ниже, попробуйте:

Provider=SQLNCLI10;Data Source=MYPC\MSSQLSERVER;DataTypeCompatibility=80;Initial  Catalog=mydb;User ID=me;Password=123 

В этом документе описываются ключевые слова строки подключения для каждого метода подключения для приложений OLE DB с использованием собственного клиента SQL Server при подключении к SQL Server 2008 R2.

http://msdn.microsoft.com/en-us/library/ms130822.aspx

Ответ 5

Попробуйте настроить свой идентификатор пользователя на

MYPC\me

Возможно, добавление в домен для идентификатора пользователя поможет разрешить разрешение сервера Sql

Ответ 6

Можете ли вы войти с помощью студии управления с этим пользователем и посмотреть базу данных, в которую вы пытаетесь войти?

Возможно, есть проблема с кодировкой символов с файлом, который содержит строку подключения. Является ли строка соединения хранимой как текст в собственном файле? Если да, попробуйте открыть этот файл в Notepad ++ и проверьте, что выбрано в меню "Кодировка" вверху. Попробуйте изменить его на UTF-8 или ANSI.

UPDATE

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

Попробуйте следующее:

  • Войдите в студию управления и подключитесь к своей базе данных с помощью sa
  • Щелкните правой кнопкой мыши сервер базы данных в проводнике объектов слева.
  • Перейдите на вкладку "Безопасность"
  • Убедитесь, что вы используете "SQL Server и Windows Authentication mode", а не только "Режим проверки подлинности Windows"
  • Если вы используете "Режим проверки подлинности Windows", измените его
  • Найти пользователя приложения в разделе "Безопасность" > "Логины"
  • Щелкните правой кнопкой мыши > Свойства
  • Убедитесь, что выбрана проверка подлинности SQL Server
  • Если это не так, вы можете попробовать изменить его или создать нового пользователя и убедиться, что выбрали "Аутентификация SQL Server"

Ответ 7

Как это должно выглядеть, например... Provider=SQLNCLI;Server=myServerName\theInstanceName;Database=myDataBase; Trusted_Connection=yes;

(Trusted_connection на всякий случай, что, возможно, я полагаю)

Ответ 8

Во-первых, вы понимаете разницу между аутентификацией SQL Server и аутентификацией Windows? Основываясь на некоторых комментариях, я не уверен.

Вы заявляете, что вы проверили свой пароль 100 раз; вы вошли в SSMS с использованием проверки подлинности SQL Server и проверили его там? Моя теория заключается в том, что у вас есть учетная запись SQL Server с тем же именем, что и ваша учетная запись Windows, и что вы подключаетесь к SSMS с использованием учетной записи Windows, а НЕ - учетной записи SQL.

Ответ 9

Уверено, что имя вашего компьютера заглавное? Некоторое время назад я обнаружил, что имя в camelCase или с пробелами внутри может привести к такому поведению.

Если это не так, измените его, добавив хотя бы одну букву, или изменение не будет успешным.