サーバー ネットワーク プロトコルの有効化または無効化
すべてのネットワーク プロトコルは SQL Server セットアップによってインストールされますが、有効になっている場合と有効になっていない場合があります。 このトピックでは、SQL Server 構成マネージャーまたは PowerShell を使用して SQL Server 2014 でサーバー ネットワーク プロトコルを有効または無効にする方法について説明します。 変更を有効にするために データベース エンジン を停止し、再起動する必要があります。
重要
SQL Server Express のセットアップ時に、ログインは BUILTIN\Users グループに追加されます。 これにより、コンピューターの認証されたすべてのユーザーが public ロールのメンバーとして SQL Server Express のインスタンスにアクセスできるようになります。 BUILTIN\Users ログインを安全に削除して、 データベース エンジン アクセスを、個別のログインを持つコンピューター ユーザーまたはログインを持つ他の Windows グループのメンバーに制限できます。
警告
SQL Server および SQL Server 向けの Microsoft データ プロバイダーは、TLS 1.0 および SSL 3.0 のみをサポートしています。 オペレーティング システムの SChannel 層を変更して別のプロトコル (TLS 1.1、TLS 1.2 など) を適用すると、SQL Server への接続に失敗する可能性があります。
このトピックの内容
サーバー ネットワーク プロトコルを有効または無効にするための方法:
SQL Server 構成マネージャーの使用
サーバー ネットワーク プロトコルを有効にするには
SQL Server 構成マネージャーのコンソール ペインで、[SQL Server ネットワーク構成] を展開します。
コンソール ウィンドウで、 Protocols for <instance name> をクリックします。
詳細ペインで、変更するプロトコルを右クリックし、 [有効化] または [無効化]をクリックします。
コンソール ペインで、 [再起動] をクリックします。
詳細ペインで [SQL Server (<インスタンス名>)] を右クリックします。次に、[再起動] をクリックして、SQL Server サービスを停止し、再起動します。
SQL Server PowerShell の使用
PowerShell を使用してサーバー ネットワーク プロトコルを有効にするには
管理者権限を使用してコマンド プロンプトを開きます。
タスク バーから Windows PowerShell 2.0 を起動するか、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ]、[Windows PowerShell]、[Windows PowerShell] の順にクリックします。
を入力して、 sqlps モジュールをインポートします。
Import-Module "sqlps"
次のステートメントを実行して TCP プロトコルおよび名前付きパイプ プロトコルの両方を有効にします。
<computer_name>
を、 SQL Serverを実行しているコンピューターの名前に置き換えます。 名前付きインスタンスを構成する場合は、MSSQLSERVER
をインスタンス名に置き換えます。プロトコルを無効にするには、
IsEnabled
プロパティを$false
に設定します。$smo = 'Microsoft.SqlServer.Management.Smo.' $wmi = new-object ($smo + 'Wmi.ManagedComputer'). # List the object properties, including the instance names. $Wmi # Enable the TCP protocol on the default instance. $uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']" $Tcp = $wmi.GetSmoObject($uri) $Tcp.IsEnabled = $true $Tcp.Alter() $Tcp # Enable the named pipes protocol for the default instance. $uri = "ManagedComputer[@Name='<computer_name>']/ ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']" $Np = $wmi.GetSmoObject($uri) $Np.IsEnabled = $true $Np.Alter() $Np
ローカル コンピューターのプロトコルを構成するには
スクリプトをローカルで実行してローカル コンピューターを構成する場合、 SQL Server PowerShell ではローカル コンピューター名を動的に判断でき、スクリプトの柔軟性が向上します。 ローカル コンピューター名を取得するには、
$uri
変数の行の設定を次の行に置き換えます。$uri = "ManagedComputer[@Name='" + (Get-Item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']"
SQL Server PowerShell を使用してデータベース エンジンを再起動するには
プロトコルを有効または無効にした後は、 データベース エンジン を停止してから再起動して、変更を有効にする必要があります。 SQL Server PowerShell で既定のインスタンスを停止してから起動するには、次のステートメントを実行します。 名前付きインスタンスを停止してから起動するには、
'MSSQLSERVER'
を'MSSQL$<instance_name>'
に置き換えます。# Get a reference to the ManagedComputer class. CD SQLSERVER:\SQL\<computer_name> $Wmi = (Get-Item .).ManagedComputer # Get a reference to the default instance of the Database Engine. $DfltInstance = $Wmi.Services['MSSQLSERVER'] # Display the state of the service. $DfltInstance # Stop the service. $DfltInstance.Stop(); # Wait until the service has time to stop. # Refresh the cache. $DfltInstance.Refresh(); # Display the state of the service. $DfltInstance # Start the service again. $DfltInstance.Start(); # Wait until the service has time to start. # Refresh the cache and display the state of the service. $DfltInstance.Refresh(); $DfltInstance