Не вдається підключитися до SQL Server за допомогою облікового запису 'sa', чого мені не вистачає?


20

Я намагаюся увійти до екземпляра SQL Server 2005 Express за допомогою наступної команди:

osql -S .\INSTANCE -U sa -P password

Я отримую помилку: Не вдалося ввійти для користувача "sa".

Я можу підключитись чудово за допомогою перемикача -E. Треба додати, що це працює місяцями. Я думаю, що хтось щось змінив, але я не можу зрозуміти, що це таке.

Це те, що я спробував:

  • Увійти за допомогою автентифікації Windows та зміни пароля sa:

    sp_password NULL, новий пароль, 'sa'

  • Увімкнення "sa" входу:

    ALTER LOGIN sa ENABLE; ПОВЕРНУТИСЬ ВХІД з PASSWORD = 'newpassword'; ПОВЕРНУТИСЯ

  • Перевірив реєстр Windows, щоб переконатися, що включена змішана автентифікація . Значення було правильним: LoginMode = 2

Що ще я повинен перевірити? Заздалегідь спасибі.

ДОДАТКОВА ІНФОРМАЦІЯ:

Це сервер Windows 2003. У них включена певна політика щодо паролів, я пам’ятаю, що мені потрібно було змінити пароль «sa» за замовчуванням, який використовує моя програма, коли він встановлює SQL Server на ще один складний.

Я підключаюсь за допомогою VNC, тому я не можу реально використовувати SSMS

Моя програма може з'єднуватися за допомогою іншого входу в SQL Server, але без "sa"

Нарешті, якщо ми не знайдемо рішення, я видалю цей екземпляр і знову встановлю його, але я дуже хотів би дізнатися, у чому проблема. Про всяк випадок, якщо це станеться знову і просто для простої цікавості.

Відповіді:


23

Як сказав @SpaceManSpiff, не забудьте перевірити, чи включений змішаний режим. Хтось змінив цю настройку для мене, і у мене була така ж проблема. Ось як це вирішити:

  1. Увійдіть до студії управління MSSQL Server за допомогою аутентифікації Windows.
  2. У Провіднику об’єктів SQL Server Management Studio клацніть правою кнопкою миші сервер і виберіть Властивості.
  3. У розділі Властивості сервера виберіть сторінку "Безпека".
  4. Виберіть автентифікацію сервера як "Режим автентифікації SQL Server та Windows" та натисніть кнопку ОК. Властивості бази даних MSSQL Server Management
  5. Перезапустіть служби SQL, а потім спробуйте увійти в систему з деталями 'sa'.

Джерело: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/


12

Гаразд, я зміг зрозуміти, що відбувається (вид), і я вирішив обхід.

Схоже, тиждень тому вони грали з політикою безпеки Windows. Вони додавали / видаляли дозволи, але вони не можуть дати мені саме те, що вони зробили, бо вони насправді не знали (ой!).

У будь-якому разі я підключився за допомогою системи автентифікації Windows (-E перемикач) і запустив наступний запит:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

Ключ тут - CHECK_POLICY = OFF . Це зробило трюк. Я сподіваюсь, що це зробить імунітет перед майбутніми змінами в налаштуваннях домену.

Дякуємо за всі ваші пропозиції.


6

Що потрібно перевірити

Пароль на обліковий запис SA

Змішаний режим увімкнено

Чи вимкнено обліковий запис SA?

Створіть інший обліковий запис SQL і спробуйте його (оскільки ви можете ввійти через -E, ви могли б це зробити)

Тестуйте за допомогою ODBC-з'єднання. Ви можете створити це з'єднання, щоб перевірити, чи працює SA

О, і завжди ловити все у Windows, перезавантажуватись (серйозно, це допомагає моєму тестовому SQL-серверу після того, як я все на ньому зробив)


1

У мене була ця проблема кілька років тому після встановлення Windows ServicePack (немає оновлення SQLServer, але Windows), SQLServer відмовився від з'єднань, поки також не був встановлений SQLServer ServicePack! Через декілька годин я знайшов повідомлення в журналі подій.

Я думаю, що вони зробили це, тому що вони знали, що є велика дірка у захисті, і хотіли змусити всіх адміністраторів встановити пакет. Однак, оскільки це було деякий час тому, я не маю точних версій і так далі. Я рекомендую, ви двічі перевіряєте журнал подій та встановлюєте всі / новітні пакети послуг.


Це виглядає багатообіцяюче, я спробую це в понеділок і звіту. Дякую за пропозицію.
JAG

Нарешті я не намагався встановити останній пакет оновлень. Дивіться мою власну «прийняту відповідь».
JAG

0

Якщо припустимо, що у вас встановлена ​​студія управління або Management Studio Express, чи можете ви підключити студію управління до примірника за допомогою sa?

JR


1
SSMS не встановлено, і я вважаю за краще не встановлювати його, якщо можливо. Крім того, підключення з іншого комп'ютера за допомогою SSMS - це не варіант, оскільки це сервер клієнтів. Доступні лише інструменти командного рядка.
JAG

Якщо у вас є Studio Management на іншому ПК, навіть якщо він знаходиться в іншому кінці VPN, ви все одно зможете підключитися. Сенс полягає в тому, щоб перевірити, чи є щось хитре з налаштуванням сервера, чи проблема полягає в команді osql.
Джон Ренні

0

Ви впевнені, що перезапустили службу SQL Server після зміни реєстру?


Не потрібно було його змінювати, оскільки воно мало правильне значення.
JAG

0

Хтось видалив базу даних, яка була базою даних за замовчуванням для "sa"?

Якщо це проблема, спробуйте

EXEC sp_defaultdb 'sa', 'New default database'

Теоретично існує лише одна база даних, і вона існує. Я не виконував цієї команди.
JAG

Зазвичай це "господар". Але я думаю, що це не проблема ...
splattne

Я просто спробував це, але нічого не змінилося. Все одно, дякую.
JAG

0

Якщо ви встановлюєте SQL Express 2014, вам доведеться виконати кілька дій, щоб усунути цю помилку, якщо ви спробуєте увійти в систему з обліковим записом [sa].

  1. Обліковий запис "sa" стане відключеним. Тому вам потрібно буде переключити обліковий запис з вимкненого на включене у розділі стану облікового запису.

  2. На сервері повинні бути включені вікна та sql-аутентифікація сервера. За замовчуванням увімкнено лише автентифікацію Windows.

  3. Скинути пароль. (див. код нижче; ServerFault має помилку, коли код не відображається таким самим при використанні впорядкованого списку станом на 8.06.2016)

  4. Перезавантажте службу Windows для SQL Server

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;

0

Іноді вхід заборонено через багато неправильних паролів або будь-яке порушення політики. Тож, що ми можемо зробити, це просто увійти в систему з автентифікацією вікна, змінити пароль і знову включити вхід.

Увійдіть до бази даних за допомогою аутентифікації Windows

Виконати запит:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF 
GO
ALTER LOGIN [sa] ENABLE
GO

Використовувати CHECK_POLICY потрібно, оскільки воно вказує, що політики щодо паролів Windows на комп'ютері, на якому працює SQL Server, повинні застосовуватися при цьому вході. За замовчуванням увімкнено, коли ми робимо OFF, він змінить пароль без особливих труднощів. Пізніше ви можете ввімкнути

ПРИМІТКА. Те, що я помічав, коли CHECK_POLICY знаходиться на GUI, рішення SSME для зміни пароля не працюватиме кожен раз. Я не за цим, але за тим, що я спостерігав.


0

Я вирішив це таким чином, як увійти в систему з вашими Windows аутентифікацією goto властивостями сервера >> Безпека та зміна автентичності сервера


1
Не могли б ви витратити більше на форматування (та доповнення) своєї відповіді? Як це написано, це не дуже допоможе.
асдмін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.