How to enable TCP/IP protocol for Sql Server using command line

Trong quá trình làm việc với MS SQL Server, để config cho phép SQL Server làm kết nối trong mạng thông qua TCP/IP hoặc Named pipes. Bạn thường sẽ sử dụng SQL Server Configuration Management.
Tuy nhiên, vì lý do gì đó mà bạn không thể mở được SQL Server Configuration Management để thực hiện thông qua giao diện người dùng. Thật may mắn, với WMI (Windows Management Instrumentation), chúng ta có thể thực hiện việc Enable/Disable TCP/IP cho MS SQL Server thông qua cửa sổ Command Line của Windows.

Trong cửa sổ cmd, thực hiện các lệnh sau:

  • Để enable TCP/IP
WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Tcp' CALL SetEnable  
  • Để disable TCP/IP
WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Tcp' CALL SetDisable  
  • Để enable named pipes
WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Np' CALL SetEnable  
  • Để disable named pipes
WMIC /NAMESPACE:\\root\Microsoft\SqlServer\ComputerManagement10 PATH ServerNetworkProtocol WHERE ProtocolName='Np' CALL SetDisable  

Trong các lệnh trên, thay thế ComputerManagement10 thành ComputerManagement11 nếu bạn đang làm việc với SQL Server 2012.

Sau khi Enable Tcp/Ip cho Sql Server, bạn cần phải restart lại services SQL Server để có hiệu lực.

Bonus: Đôi khi sau khi đã enable Tcp/Ip và restart service rồi nhưng vẫn chưa thể truy cập vào SQL từ máy khác. Bạn cần kiểm tra lại firewall xem đã mở port 1433 (port mặc định) của SQL Server chưa. Sử dụng lệnh sau để mở port SQL Server:

netsh advfirewall firewall add rule name="Open Port for Sql Server" dir=in action=allow protocol=TCP localport=1433