次の方法で共有


サーバー ネットワーク プロトコルの有効化または無効化

すべてのネットワーク プロトコルは 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 構成マネージャーの使用

サーバー ネットワーク プロトコルを有効にするには

  1. SQL Server 構成マネージャーのコンソール ペインで、[SQL Server ネットワークの構成] を展開します。

  2. コンソール ペインで、[<instance name> のプロトコル] をクリックします。

  3. 詳細ペインで、変更するプロトコルを右クリックし、[有効化] または [無効化] をクリックします。

  4. コンソール ペインで、[SQL Server のサービス] をクリックします。

  5. 詳細ペインで、[SQL Server (<instance name>)] を右クリックします。次に、[再起動] をクリックして、SQL Server サービスを停止し、再起動します。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server PowerShell の使用

PowerShell を使用してサーバー ネットワーク プロトコルを有効にするには

  1. 管理者権限を使用してコマンド プロンプトを開きます。

  2. タスク バーから Windows PowerShell 2.0 を起動するか、[スタート] ボタンをクリックし、[すべてのプログラム]、[アクセサリ]、[Windows PowerShell]、[Windows PowerShell] の順にクリックします。

  3. 「Import-Module "sqlps"」と入力して、sqlps モジュールをインポートします。

  4. 次のステートメントを実行して 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]