Windows 2022
Sponsored Link

SQL Server 2022 : リモートホストから接続 : SQL Server 認証
2023/01/13
 
インストールした SQL Server のデータベースエンジンに、リモートホストから SQL Server 認証で接続するには以下のように設定します。
Windows 認証ではないため、Active Directory ドメインの所属は必須ではありません。
[1] SQL Server 認証でデータベースエンジンにリモート接続したい場合は、事前に SQL Server 側で、認証方式を SQL Server 認証と Windows 認証の混合モードに変更しておく必要があります。
CUI で変更する場合は PowerShell を管理者権限で起動して設定します。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

# インスタンス名確認
PS C:\Users\Administrator> Get-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server" | Out-String -Stream | Select-String "InstalledInstances"

InstalledInstances : {MSSQLSERVER}

# 認証モードを混合モードに変更
# MSSQL16.(確認したインスタンス名)
PS C:\Users\Administrator> Set-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLSERVER" -Name "LoginMode" -Value 2

PS C:\Users\Administrator> Get-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLSERVER" -Name "LoginMode"

LoginMode    : 2
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL
               Server\MSSQL16.MSSQLSERVER\MSSQLSERVER
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL
               Server\MSSQL16.MSSQLSERVER
PSChildName  : MSSQLSERVER
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

# TCP/IP の設定を有効にする
PS C:\Users\Administrator> Set-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp" -Name "Enabled" -Value 1

PS C:\Users\Administrator> Get-ItemProperty -Path "HKLM:\Software\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp" -Name "Enabled"

Enabled      : 1
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL
               Server\MSSQL16.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL
               Server\MSSQL16.MSSQLSERVER\MSSQLServer\SuperSocketNetLib
PSChildName  : Tcp
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

PS C:\Users\Administrator> Get-Service | Out-String -Stream | Select-String "SQL"

Running  MsDtsServer160     SQL Server Integration Services 16.0
Running  MSSQLFDLauncher    SQL Full-text Filter Daemon Launche...
Running  MSSQLSERVER        SQL Server (MSSQLSERVER)
Running  MSSQLServerOLAP... SQL Server Analysis Services (MSSQL...
Stopped  SQLBrowser         SQL Server Browser
Stopped  SQLSERVERAGENT     SQL Server Agent (MSSQLSERVER)
Running  SQLTELEMETRY       SQL Server CEIP service (MSSQLSERVER)
Running  SQLWriter          SQL Server VSS Writer
Running  SSASTELEMETRY      SQL Server Analysis Services CEIP (...
Running  SSISTELEMETRY160   SQL Server Integration Services CEI...

# インスタンスサービス 再起動
PS C:\Users\Administrator> Restart-Service MSSQLSERVER

# Windows Firewall 稼働中の場合は データベースエンジン ポートを許可
PS C:\Users\Administrator> New-NetFirewallRule -Name "MSSQL" `
-DisplayName "SQL Server" `
-Description "Allow Database Engine" `
-Profile Any `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-Program Any `
-LocalAddress Any `
-RemoteAddress Any `
-LocalPort 1433 `
-RemotePort Any 

# ローカルホストから Windows 認証で接続し
# データベースインスタンスの管理者ユーザー (SA) を有効にしてパスワードを設定
PS C:\Users\Administrator> sqlcmd -S localhost 

1> alter login sa enable;
2> alter login sa with password = 'P@ssw0rd01';
3> go

1> exit

# SA でログイン確認
PS C:\Users\Administrator> sqlcmd -S localhost -U SA
Password:
1>     # ログインできた
SQL Server 2022 : リモートホストから接続 : SQL Server 認証 (GUI)
[2]
GUI で変更する場合は、以下のように設定します。
スタートメニューから [SQL Server 2022 構成マネージャー] を起動し、左ペインで [SQL Server ネットワークの構成] を展開して、右ペインで [TCP/IP] を有効にします。
[3] SSMS を起動してデータベースエンジンに接続後、インスタンス名を右クリックして [プロパティ] を開きます。
[4] 左ペインで [セキュリティ] を選択し、右ペインで [SQL Server 認証モードと Windows 認証モード] にチェックを入れて [OK] します。
[5] インスタンス名を右クリックして [再起動] します。
[6] データベースインスタンス 管理ユーザーを有効化します。
左ペインで [セキュリティ] - [ログイン] と展開し、[sa] を右クリックして [プロパティ] を開きます。
[7] 左ペインの [全般] で、管理者のパスワードを設定します。
[8] 左ペインの [状態] で、[ログイン] を [有効] にして [OK] します。
[9] Windows Firewall 稼働中の場合は インスタンス サービス ポートを許可しておきます。(規定は 1433)
SQL Server 2022 : リモートホストから接続 : SQL Server 認証 (クライアント)
[10]
クライアントホストからの SQL Server 認証での SQL Server への接続です。Windows 11 を例にします。
SQL Server Management Studio (SSMS) をダウンロードしてインストールします。
⇒ https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
インストール後、SSMS を起動して、[認証] に [SQL Server 認証] を選択し、[ログイン] に、有効化した [SA] ユーザーとパスワードを指定してログインします。
[11] SQL Server 認証でログインできました。
[12]
コマンドで接続したい場合は [sqlcmd] コマンドを利用します。
ただし、 [sqlcmd] は SSMS 18 からは含まれなくなったため、利用したい場合は別途インストールする必要があります。
⇒ https://learn.microsoft.com/en-us/sql/tools/sqlcmd-utility?view=sql-server-ver16
[sqlcmd] コマンドをインストールすると、CUI での SQL Server への接続も可能です。
関連コンテンツ