Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

jakie są ustawienia rejestru, aby włączyć TCP w SQL Server 2005 i 2008?

Jeśli nie masz dobrego powodu, aby bezpośrednio modyfikować rejestr, sugeruję rozważenie użycia WMI . Usługa WMI zapewni bardziej niezależną od wersji implementację. Dostęp do usługi WMI można uzyskać za pośrednictwem System.Management przestrzeń nazw. Możesz mieć kod, który wygląda mniej więcej tak.

public void EnableSqlServerTcp(string serverName, string instanceName)
{
    ManagementScope scope =
            new ManagementScope(@"\\" + serverName +
                                @"\root\Microsoft\SqlServer\ComputerManagement");
    ManagementClass sqlService =
            new ManagementClass(scope,
                                new ManagementPath("SqlService"), null);
    ManagementClass serverProtocol =
            new ManagementClass(scope,
                                new ManagementPath("ServerNetworkProtocol"), null);

    sqlService.Get();
    serverProtocol.Get();

    foreach (ManagementObject prot in serverProtocol.GetInstances())
    {
        prot.Get();
        if ((string)prot.GetPropertyValue("ProtocolName") == "Tcp" &&
            (string)prot.GetPropertyValue("InstanceName") == instanceName)
        {
            prot.InvokeMethod("SetEnable", null);
        }
    }

    uint sqlServerService = 1;
    uint sqlServiceStopped = 1;
    foreach (ManagementObject instance in sqlService.GetInstances())
    {
        if ((uint)instance.GetPropertyValue("SqlServiceType") == sqlServerService &&
            (string)instance.GetPropertyValue("ServiceName") == instanceName)
        {
            instance.Get();
            if ((uint)instance.GetPropertyValue("State") != sqlServiceStopped)
            {
                instance.InvokeMethod("StopService", null);
            }
            instance.InvokeMethod("StartService", null);
        }
    }
}

Ten kod zakłada odwołanie do projektu do System.Management.dll oraz następujące oświadczenie:

using System.Management;

Protokoły SQL blog zawiera artykuł który zawiera pewne szczegóły dotyczące tego, co robi powyższy kod.

Uwaga:Jeśli zapora blokuje porty, nadal nie będziesz mógł uzyskać dostępu do serwera przez TCP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Napraw „Błąd przepełnienia arytmetycznego podczas konwersji wyrażenia na typ danych int” w SQL Server

  2. Uruchomienie tego samego zapytania SQL w jednej bazie danych trwa dłużej niż w innej bazie danych na tym samym serwerze

  3. Oblicz dni obecne i nieobecne w tabeli

  4. Jak zwrócić przyrostowy numer grupy na grupę w SQL?

  5. Wstawić wiele wierszy BEZ powtarzania części instrukcji INSERT INTO ...?