SQL Server認証を使用してSQL Server 2008にログインできません。
Windows認証モードでしかログインできません。
SQL Server 2008 R2のインストール時にデフォルトのみを選択しました。
SQL Server認証を使用してSQL Server 2008にログインできません。
Windows認証モードでしかログインできません。
SQL Server 2008 R2のインストール時にデフォルトのみを選択しました。
回答:
どこを見た?サーバーを右クリックして[プロパティ]を選択し、[セキュリティ]画面を選択します。
次に、Windows auth adminアカウントを使用してログインし、sa
SQL authアカウントのパスワードを設定します。
ALTER LOGIN sa WITH PASSWORD = 'strong password here';
サーバーがWindows認証モードでのみ実行されるように構成されている可能性があります。これは、SQL Server Management StudioでSQL Serverインスタンスのプロパティを開き、[ セキュリティ]セクションを調べることで確認できます。
または、Windowsアカウントでログインした後、次のSQL Serverステートメントを実行できます。
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
返された値がある場合はLoginMode 2
、その後SQL ServerおよびWindows認証モードが起動されています。(これを変更する方法の詳細については、ステップ2を参照してください。)
返された値がある場合はLoginMode 1
、その後、Windows認証モードが起動されています。(この設定の変更方法の詳細については、ステップ1を参照してください)純粋なSQL Serverログインでのログインはできません。
インスタンスがWindows認証モードのみを使用するように構成されている場合は、SQL ServerおよびWindows認証モードをオンにして、サーバーを再起動する必要があります。次の簡単な手順に従ってください:
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO
プロパティウィンドウのセキュリティセクションの設定をSQL ServerおよびWindows認証モードに変更します。
(SQLCMDモードの SQLスクリプトで実行できます)
-- Connect to your instance
-- (Replace <instancename> with your instance's name
:connect <instancename>
-- Stop your SQL Server instance
-- (Replace SQLSERVERAGENT with the name of your service)
!! net stop SQLSERVERAGENT
-- (Replace MSSQLServer with the name of your service)
!! net stop MSSQLServer
-- Start your SQL Server instance
-- (Replace SQLSERVERAGENT with the name of your service)
!! net start MSSQLServer
-- (Replace SQLSERVERAGENT with the name of your service)
!! net start SQLSERVERAGENT
:connect localhost
SQL Serverインスタンスを右クリックし、コンテキストメニューから[ 再起動]を選択します。
次のコマンドを発行して、インスタンスがSQL ServerおよびWindows認証モードで実行されていることを確認します。
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode'
を受け取る必要がありLoginMode 2
ます。
SQL ServerおよびWindows認証モードでラジオボタンが選択されていることを確認します。
saアカウントが無効になっている場合は、ステップ2も実行してください。それ以外の場合は終了です。
saアカウントが無効になっている場合は、先に進んでSQL Serverアカウントを再度有効にしてください。これは、次のスクリプトで実現できます。
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD=N'<your password>'
GO
ALTER LOGIN [sa] ENABLE
GO
...またはSSMS経由。
多くの不正なパスワードやポリシー違反により、ログインが無効になる場合があります。したがって、ウィンドウ認証でログインし、パスワードを変更して、再度ログインを有効にするだけです。
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ソリューションが毎回機能するとは限りません。私はその背後にある理由はありませんが、私が観察した理由はありません。