次のコマンドを使用して、SQL Server 2005 Expressインスタンスにログインしようとしています。
osql -S .\INSTANCE -U sa -P password
エラーが表示されます:ユーザー 'sa'のログインに失敗しました。
-Eスイッチを使用して問題なく接続できます。それは数ヶ月働いてきたことを付け加えなければなりません。誰かが何かを変えたと思いますが、それが何であるか理解できません。
これは私が試したものです:
Windows認証を使用してログインし、saパスワードを変更します。
sp_password NULL、newpassword、 'sa'
「sa」ログインを有効にする:
ALTER LOGIN sa ENABLE; PASSWORD = 'newpassword'を使用して、ALTER LOGIN saを実行します。 GO
Windowsレジストリをチェックして、混合認証が有効になっていることを確認しました。値は正しかった:LoginMode = 2
他に何を確認する必要がありますか?前もって感謝します。
追加情報:
これはWindows 2003 Serverです。彼らはいくつかのパスワードポリシーを有効にしています。SQLServerを別の複雑なものにインストールするときに、アプリケーションが使用するデフォルトの「sa」パスワードを変更する必要があったことを覚えています。
VNCを使用して接続しているため、実際にSSMSを使用できません
アプリケーションは別のSQL Serverログインを使用して接続できますが、「sa」は使用できません
最後に、解決策が見つからない場合は、このインスタンスを削除して再度インストールしますが、何が問題なのかを知りたいです。万が一の場合に備えて、単なる好奇心のために。
さて、私は何が起こっているのか(種類)を把握し、回避策を得ることができました。
1週間前、彼らはWindowsセキュリティポリシーで遊んでいたようです。彼らは許可を追加/削除していましたが、彼らは本当に知らなかったので(痛い!).
とにかく、私はWindows認証(-Eスイッチ)を使用して接続し、次のクエリを実行しました。
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
ここでのキーはCHECK_POLICY = OFFです。それはトリックを作りました。これにより、「sa」がドメイン設定の将来の変更の影響を受けなくなることを願っています。
すべての提案をありがとう。
@SpaceManSpiffが言ったように、混合モードが有効になっているかどうかを確認することを忘れないでください。誰かがその設定を変更してくれたので、同じ問題が発生しました。これを解決する方法は次のとおりです。
ソース: http://forums.eukhost.com/f15/login-failed-user-sa-Microsoft-sql-server-error-18456-a-12544/
確認すること
SAアカウントのパスワード
混合モードが有効
SAアカウントは無効になっていますか?
別のSQLアカウントを作成して試してみてください(-Eで取得できるため、これを実行できるはずです)。
ODBC接続を使用してテストします。この接続を作成して、SAが機能するかどうかを確認できます。
ああ、常にすべてをウィンドウでキャッチして再起動する(真剣に、これは私がそれに行った後に私のテストSQLサーバーを助ける)
数年前にWindows ServicePack(SQLServer UpdateではなくWindows)をインストールした後、SQLServerも接続を拒否しました。SQLServerServicePackもインストールされるまでです。数時間後にイベントログにメッセージが見つかりました。
彼らは大きなセキュリティホールがあることを知っていて、すべての管理者にパックのインストールを強制したかったので、彼らはこれを行ったと思います。ただし、少し前のことなので、正確なバージョンなどはわかりません。イベントログを再確認し、すべて/最新のサービスパックをインストールすることをお勧めします。
SQL Express 2014をインストールしている場合、[sa]アカウントでログインしようとすると、このエラーを解決するためにいくつかのことを行う必要があります。
「sa」アカウントは無効になります。したがって、アカウントのステータスセクションで、アカウントを無効から有効に切り替える必要があります。
サーバーでは、WindowsおよびSQLサーバー認証が有効になっている必要があります。デフォルトでは、Windows認証のみが有効になっています。
パスワードをリセットします。 (下のコードを参照してください。ServerFaultにはバグがあり、2016年6月8日の順序付きリストを使用するとコードが同じように表示されません)
SQL ServerのWindowsサービスを再起動します。
=========
ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;
私は次のようにそれを解決しました:サーバーのWindows認証gotoプロパティでログオン>>セキュリティとサーバーの認証を変更します
多くの不正なパスワードやポリシー違反により、ログインが無効になる場合があります。したがって、ウィンドウ認証でログインし、パスワードを変更して、再度ログインを有効にするだけです。
Windows認証でデータベースにログインする
クエリを実行:
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
CHECK_POLICYは、SQL Serverが実行されているコンピューターのWindowsパスワードポリシーをこのログインに適用するように指定しているため、使用する必要があります。オフにするとデフォルトはオンになり、問題なくパスワードが変更されます。後でオンにすることができます
注:CHECK_POLICYがGUIにある場合、パスワードを変更するためのSSMEソリューションが毎回機能するとは限りません。私はその背後にある理由はありませんが、それを観察しました。
Management StudioまたはManagement Studio Expressがインストールされている場合、saを使用してManagement Studioをインスタンスに接続できますか?
JR
レジストリを変更した後、SQL Serverサービスを再起動したことを確認しましたか?
"sa"のデフォルトデータベースだったデータベースを誰かが削除しましたか?
それが問題である場合、試してください
EXEC sp_defaultdb 'sa', 'New default database'