サーバー ネットワーク プロトコルの有効化または無効化
すべてのネットワーク プロトコルは SQL Server セットアップによってインストールされますが、必ずしも有効になっているとは限りません。 このトピックでは、SQL Server 2012 で SQL Server 構成マネージャーまたは PowerShell を使用してサーバー ネットワーク プロトコルを有効または無効にする方法について説明します。 変更を有効にするためにデータベース エンジンを停止し、再起動する必要があります。
セキュリティに関する注意 |
---|
SQL Server Express のセットアップ時に、ログインは BUILTIN\Users グループに追加されます。 これにより、コンピューターの認証されたすべてのユーザーが public ロールのメンバーとして SQL Server Express のインスタンスにアクセスできるようになります。 BUILTIN\Users ログインを安全に削除して、データベース エンジン アクセスを、個別のログインを持つコンピューター ユーザーまたはログインを持つ他の Windows グループのメンバーに制限できます。 |
このトピックの内容
サーバー ネットワーク プロトコルを有効または無効にするための方法:
SQL Server 構成マネージャー
PowerShell
SQL Server 構成マネージャーの使用
サーバー ネットワーク プロトコルを有効にするには
SQL Server 構成マネージャーのコンソール ペインで、[SQL Server ネットワークの構成] を展開します。
コンソール ペインで、[<instance name> のプロトコル] をクリックします。
詳細ペインで、変更するプロトコルを右クリックし、[有効化] または [無効化] をクリックします。
コンソール ペインで、[SQL Server のサービス] をクリックします。
詳細ペインで、[SQL Server (<instance name>)] を右クリックします。次に、[再起動] をクリックして、SQL Server サービスを停止し、再起動します。
[Top]
SQL Server PowerShell の使用
PowerShell を使用してサーバー ネットワーク プロトコルを有効にするには
管理者権限を使用してコマンド プロンプトを開きます。
タスク バーから Windows PowerShell 2.0 を起動するか、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ]、[Windows PowerShell]、[Windows PowerShell] の順にクリックします。
「Import-Module "sqlps"」と入力して、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
[Top]