Microsoft-Sicherheitsempfehlung: Sicherheitsrisiko in SQL Server kann Remotecodeausführung ermöglichen.

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 961040 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

EINFÜHRUNG

Microsoft hat eine Sicherheitsempfehlung zu einem Sicherheitsrisiko in Microsoft SQL Server herausgegeben, das eine Remotecodeausführung ermöglichen kann. Diese Sicherheitsempfehlung enthält zusätzliche sicherheitsrelevante Informationen. Sie finden die Sicherheitsempfehlung auf folgender Microsoft-Website:
http://www.microsoft.com/germany/technet/sicherheit/empfehlungen/961040.mspx
Dieser Artikel enthält ein VB-Skript, mit dem Sie eine Problemumgehung auf alle auf einem lokalen Computer ausgeführten Instanzen von SQL Server anwenden können.

BEISPIEL FÜR EIN VB-SKRIPT, MIT DEM SIE DIE PROBLEMUMGEHUNG ANWENDEN KÖNNEN

Mithilfe dieses VB-Skripts können Sie die Berechtigung "Execute" für die Rolle "Public" in der erweiterten gespeicherten Prozedur "sp_replwritetovarbin" für alle betroffenen Versionen von SQL Server, die auf dem lokalen Computer ausgeführt werden, verweigern.

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Mitarbeiter der Microsoft Product Support Services erklären Ihnen gerne die Funktionsweise einer bestimmten Prozedur. Sie werden diese Beispiele jedoch weder modifizieren, um zusätzliche Funktionalität zu schaffen, noch Prozeduren entwickeln, die auf Ihre spezifischen Bedürfnisse zugeschnitten sind.

Kopieren Sie diesen Code in eine Textdatei, speichern Sie die Datei mit der Dateinamenerweiterung VBS, und führen Sie die Skriptdatei anschließend unter Verwendung von "CScript.exe" aus. Das Skript wird für alle ausgeführten Instanzen von SQL Server auf dem lokalen Computer wiederholt und wendet die Problemumgehung auf die betroffenen Versionen an. Sie müssen für jede Instanz von SQL Server ein Mitglied der Rolle "sysadmin" sein, um die Problemumgehung anwenden zu können. Wenn Sie über kein Windows-Konto verfügen, das für alle betroffenen Server, auf denen SQL Server ausgeführt wird, ein Mitglied der Rolle "sysadmin" ist, müssen Sie dieses Skript möglicherweise unter mehreren Konten ausführen. Wenn Sie unter Windows Server 2008 und Windows Vista ein Windows-Administratorkonto verwenden, das ein Mitglied der Rolle "sysadmin" ist, müssen Sie dieses Skript in einer Eingabeaufforderung mit erhöhten Rechten ausführen.
'*************************************************************************************
'Beschreibung: Dieses Skript wird für alle ausgeführten Instanzen von SQL Server wiederholt
'            und verweigert die "execute"-Berechtigung für "sp_replwritetovarbin" für "public"
'            in allen betroffenen Versionen.
'            DIESE PROBLEMUMGEHUNG SOLLTE NICHT VERWENDET WERDEN, WENN
'            EIN SICHERHEITSUPDATE BEREITGESTELLT UND INSTALLIERT WURDE.
'*************************************************************************************

OPTION EXPLICIT
ON ERROR RESUME NEXT

' Werte der Konstanten
CONST EXIT_SUCCESS       = 0
CONST EXIT_FAILURE       = 1
CONST EXIT_NOINSTANCES   = -1
CONST DEFAULTNAMESPACE   = "root\default"
CONST STDREGPROV         = "stdregprov"
CONST HKEY_LOCAL_MACHINE = &H80000002
CONST REG_MULTI_SZ       = 7
CONST REG_SZ             = 1
CONST adCmdText          = 1


Call VBMain()

Function VBMain()
    Err.Clear
    ON ERROR RESUME NEXT
		
    Dim sInstances(), strInstance, i, TotalCount
    VBMain = EXIT_SUCCESS
    If GetInstances(sInstances, TotalCount) = FALSE Then
        WScript.Quit EXIT_FAILURE
    End If

    If IsEmptyNull(sInstances) Then 
        WScript.Echo "INFO: Es sind keine Instanzen vorhanden."
        VBMain = EXIT_NOINSTANCES
        Exit Function
    End If

    For i = 0 To TotalCount-1
        strInstance = sInstances(i,0)
        GetFullInstance strInstance, sInstances(i,1)
        If ApplyFix(sInstances(i,0), strInstance) = FALSE Then
            WScript.Echo "FEHLER: Problemumgehung konnte auf " + sInstances(i,0) + " nicht angewendet werden." + vbCRLF
            VBMain = EXIT_FAILURE
        End If
    Next
	
    WScript.Echo "INFO: Verarbeitung aller ausgeführten SQL-Instanzen abgeschlossen."
End Function

Function GetInstances(ByRef sInstances, ByRef TotalCount)
    Err.Clear
    ON ERROR RESUME NEXT
		
    Dim sInstances1, sInstances2, i
    Dim instCount1, instCount2
    GetInstances = FALSE

    If NOT GetRegValue ("", HKEY_LOCAL_MACHINE, "Software\Microsoft\Microsoft SQL Server", "InstalledInstances", sInstances1, REG_MULTI_SZ, TRUE) Then
        WScript.Echo "FEHLER: Fehler beim Lesen der auf dem Computer installierten SQL-Instanzen."
        Exit Function
    End If

    sInstances2 = NULL
    If IsOs64Bit() = TRUE Then
        If NOT GetRegValue ("", HKEY_LOCAL_MACHINE, "Software\Microsoft\Microsoft SQL Server", "InstalledInstances", sInstances2, REG_MULTI_SZ, FALSE) Then
            WScript.Echo "FEHLER: Fehler beim Lesen der auf dem Computer installierten SQL-Instanzen."
            Exit Function
        End If
    End If

    If IsEmptyNull(sInstances1) AND IsEmptyNull(sInstances2) Then 
        WScript.Echo "INFO: Keine Instanzen vorhanden."
        WScript.Quit EXIT_SUCCESS
    End If
        
    instCount1 = 0
    instCount2 = 0 
    TotalCount = 0
    If IsEmptyNull(sInstances1) = FALSE Then
        instCount1 = UBound(sInstances1) + 1
        TotalCount = instCount1
    End If
        
    If IsEmptyNull(sInstances2) = FALSE Then
        instCount2 = UBound(sInstances2) + 1
        TotalCount = TotalCount + instCount2
    End If

    ReDim PRESERVE sInstances(TotalCount,1)
    if instCount1 > 0 Then
        For i = 0 To UBound(sInstances1)
            sInstances(i,0) = sInstances1(i)
            sInstances(i,1) = True
        Next
    End If
    If instCount2 >0 Then
        For i = 0 To UBound(sInstances2)
            sInstances(i+instCount1,0) = sInstances2(i)
            sInstances(i+instCount1,1) = FALSE
        Next
    End If
    GetInstances = TRUE
End Function


Function ApplyFix(ByVal strInstance, ByVal strServerName)
    Err.Clear
    ON ERROR RESUME NEXT

    Dim objConn, objCmd, objCmd1, objRS, objRS1
    Dim strCommand, strConn
    Dim strBuildVersion, strProductLevel, bApplyFix

    ' Rückgabewert initialisieren
    ApplyFix = FALSE
    
    strConn = "Provider=sqloledb;Initial Catalog=master;Integrated Security=SSPI;Data Source=" + strServerName + ";"
    ' Fehlerprüfung absichtlich beendet, um den Code kurz zu halten
    Set objConn = CreateObject("ADODB.Connection")
    Set objCmd = CreateObject("ADODB.Command")
    Set objCmd1 = CreateObject("ADODB.Command")
    
    ' Öffnen einer Verbindung zur Masterdatenbank
    objConn.Open strConn 
    If ErrorOccurred("Fehler: Keine Verbindung zu " + strInstance) Then
        Set objConn = Nothing
        Exit Function
    End If

    ' Prüfen der Version vor Anwendung des Fixes
    strCommand = "SERVERPROPERTY('ProductVersion') als Version auswählen, SERVERPROPERTY('productlevel') als Produktebene auswählen"
    objCmd.ActiveConnection = objConn
    objCmd.CommandType = adCmdText
    objCmd.CommandText = strCommand
    	
    Set objRS = objCmd.Execute()
    If ErrorOccurred("FEHLER: Fehler bei Ausführung von """ + strCommand + """ in " + strInstance) = TRUE Then
        objConn.Close()
        Set objConn = Nothing
        ApplyFix = FALSE
        Exit Function   
    End If

    strBuildVersion = objRS("version")
    strProductLevel = UCase(objRS("productlevel"))

    bApplyFix = FALSE
    ' Problemumgehung nur für SQL 2000 und SQL 2005 (RTM, SP1 und SP2) anwenden
    If (CInt(Mid(strBuildVersion,1,1)) = 8) Then
        bApplyFix = TRUE
    ElseIf CInt(Mid(strBuildVersion,1,1)) = 9 AND (StrComp(strProductLevel,"RTM") = 0 OR StrComp(strProductLevel,"SP1") = 0 OR StrComp(strProductLevel,"SP2") = 0) Then
        bApplyFix = TRUE
    End If 
	
    If bApplyFix = TRUE Then
        strCommand = "execute für sp_replwritetovarbin für public verweigern"
        objCmd1.ActiveConnection = objConn
        objCmd1.CommandType = adCmdText
        objCmd1.CommandText = strCommand
        Set objRS1 = objCmd1.Execute()
        If ErrorOccurred("FEHLER: Fehler bei Ausführung von """ + strCommand + """ in " + strInstance) = FALSE Then
            WScript.Echo "INFO: Problemumgehung erfolgreich angewendet für " + strInstance + " (" + strBuildVersion + ")." + vbCRLF
            ApplyFix = TRUE
        End If
    Else
        WScript.Echo "INFO: Datenerfassung für " + strInstance + " (" + strBuildVersion + ") ausgelassen, da diese Instanz nicht anfällig ist." + vbCRLF
        ApplyFix = TRUE
    End If

    objConn.Close()
    Set objConn = Nothing
    Set objCmd = Nothing
    Set objCmd1 = Nothing
    Set objRS = Nothing
    Set objRS1 = Nothing
End Function

Private Function GetRegValue (ByVal strMachineName, ByVal hMainKey, ByVal strPath, ByVal strValueName, ByRef strValue, ByVal iValueType, ByVal b32bit)
    Err.Clear
    ON ERROR RESUME NEXT
	
    Dim objLocator, objServices, objRegistry, objCtx
    Dim sMultiStrings, lRc
    GetRegValue = TRUE

    'Verbinden mit WMI und Abrufen eines Objekts zu Klasse STDREGPROV.
    Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
    If b32bit = TRUE Then
        objCtx.Add "__ProviderArchitecture", 32
    Else
        objCtx.Add "__ProviderArchitecture", 64
    End If
    objCtx.Add "__RequiredArchitecture", TRUE
    set objLocator = createobject("wbemscripting.swbemlocator")
    set objServices = objLocator.connectserver(strMachineName,DEFAULTNAMESPACE, "", "",,,,objCtx)
    set objRegistry = objServices.get(STDREGPROV)
    If ErrorOccurred ("FEHLER: Keine Verbindung zu WMI-Namespace " + DEFAULTNAMESPACE) Then
        GetRegValue = FALSE
        Exit Function
    End If 

    lRc = 0
    Select Case iValueType
        ' Von Interesse nur REG_MULTI_SZ
        Case REG_MULTI_SZ
            strValue = ""
            lRC = objRegistry.GetMultiStringValue(hMainKey, strPath, strValueName, sMultiStrings)
            strValue = sMultiStrings
        Case REG_SZ
            strValue = ""
            lRC = objRegistry.GetStringValue(hMainKey, strPath, strValueName, strValue)
        Case Else
            GetRegValue = FALSE
    End Select

    If lRc = 2 Or lRc = 3 Then
        GetRegValue = TRUE
        strValue = ""
    ElseIf Err.Number OR lRc <> 0 Then
        GetRegValue = FALSE
    End If
    
    Set objLocator = Nothing
    Set objServices = Nothing
    Set objRegistry = Nothing
End Function

Function IsEmptyNull(sCheck)
    IsEmptyNull = FALSE
    If IsObject(sCheck) Then Exit Function
    If IsArray(sCheck) Then Exit Function
    If VarType(sCheck) = vbEmpty Then IsEmptyNull = TRUE : Exit Function
    If VarType(sCheck) = vbNull Then IsEmptyNull = TRUE : Exit Function
    If sCheck = "" Then IsEmptyNull = TRUE
End Function

Private Function ErrorOccurred (ByVal strIn)
    If Err.Number <> 0 Then
        WScript.Echo strIn
        WScript.Echo "FEHLER: 0x" & Err.Number & " - " & Err.Description
        Err.Clear
        ErrorOccurred = TRUE
    Else
        ErrorOccurred = FALSE
    End If
End Function

Function IsOs64Bit()
    Err.Clear
    ON ERROR RESUME NEXT
    
    Dim objProc
    Set objProc = GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'")
    If objProc.Architecture = 0 Then
        IsOs64Bit = FALSE
    Else
        IsOs64Bit = TRUE
    End If
End Function

Function GetFullInstance (ByRef strInstanceName, ByVal b32bit)
    Err.Clear
    ON ERROR RESUME NEXT 

    Dim objServices, objClusters, objCluster
    Dim strMacName, isEmpty
    Dim strKey, strInstID
    
    GetFullInstance = TRUE
    
    If strComp(UCase(strInstanceName), "MICROSOFT##SSEE", 1) = 0 Then
        strInstanceName = "np:\\.\pipe\mssql$microsoft##ssee\sql\query"
        Exit Function
    End if

    strMacName = ""
    Set objServices = GetObject("winmgmts:root\cimv2")

    ' Abfragen des Clusterdiensts
    Set objClusters = objServices.ExecQuery ("* aus win32_service auswählen, wobei Name='ClusSvc' AND Started = TRUE")
    isEmpty = TRUE
    If Err.Number = 0 Then
        For each objCluster in objClusters
            isEmpty = FALSE
        Next
    End If

    Set objServices = Nothing
    Set objClusters = Nothing

    If isEmpty = TRUE Then
        strInstanceName = BuildInstanceName (".", strInstanceName)
        Exit Function
    End If
    
    ' Wenn Sie hier ankommen, bedeutet dies, dass der Computer ein Clusterknoten ist.
    ' Fragen Sie daher jetzt die Registrierung ab, um zu ermitteln, ob die SQL-Instanz geclustert ist oder nicht.
    ' Fragen Sie für SQL 2000 den folgenden Wert ab:
    ' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\Cluster
    ' ClusterName
    strKey = "SOFTWARE\Microsoft\Microsoft SQL Server\" + strInstanceName + "\Cluster"
    GetRegValue "", HKEY_LOCAL_MACHINE, strKey, "ClusterName", strMacName, REG_SZ, b32bit

    If StrComp(strMacName, "") <> 0 Then
        strInstanceName = BuildInstanceName (strMacName, strInstanceName)
        Exit Function
    End If

    strKey = "SOFTWARE\Microsoft\" + strInstanceName + "\Cluster"
    GetRegValue "", HKEY_LOCAL_MACHINE, strKey, "ClusterName", strMacName, REG_SZ, b32bit

    If StrComp(strMacName, "") <> 0 Then
        strInstanceName = BuildInstanceName (strMacName, strInstanceName)
        Exit Function
    End If

    ' Überprüfen Sie die Registrierung nun auf Werte für 2005/2008-Instanzen:
    'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL
    ' RegValue = InstanceName
    strInstID = ""
    strKey = "SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
    GetRegValue "", HKEY_LOCAL_MACHINE, strKey, strInstanceName, strInstID, REG_SZ, b32bit
    
    If StrComp(strInstID, "") = 0 Then
        ' Wenn dieser Schlüssel nicht existiert, als lokale SQL 2000-Instanz zurückgeben.
        strInstanceName = BuildInstanceName (".", strInstanceName)
        Exit Function
    End If

    strKey = "SOFTWARE\Microsoft\Microsoft SQL Server\" + strInstID + "\Cluster"
    GetRegValue "", HKEY_LOCAL_MACHINE, strKey, "ClusterName", strMacName, REG_SZ, b32bit
    
    If StrComp(strMacName, "") = 0 Then
        strMacName = "."
    End If

    strInstanceName = BuildInstanceName (strMacName, strInstanceName)
End Function

Function BuildInstanceName (ByVal strMachineName, ByVal strInstanceName)
    Dim strPrefix
    
    strPrefix = ""
    If StrComp(strMachineName, ".") = 0 Then
        strPrefix = "lpc:"
    End If
    
    If strComp(UCase(strInstanceName), "MSSQLSERVER", 1) = 0 Then
        BuildInstanceName = strPrefix + strMachineName
    Else
        BuildInstanceName = strPrefix + strMachineName + "\" + strInstanceName
    End if
End Function
Weitere Informationen zu "CScript.exe" finden Sie auf folgender Website von Microsoft:
http://technet.microsoft.com/de-de/library/bb490887.aspx
Hinweis Sie sollten dieses Skript nicht verwenden, wenn ein Sicherheitsupdate bereitgestellt und installiert wurde.

BEKANNTE PROBLEME, DIE BEI DER AUSFÜHRUNG DIESES SKRIPTS AUFTRETEN KÖNNEN

Problem 1

Wenn Sie das Skript ausführen, wird die folgende Fehlermeldung angezeigt:
FEHLER: "execute für sp_replwritetovarbin für public verweigern" konnte für <instancename> nicht ausgeführt werden.
FEHLER: 0x-2147217900 - Objekt 'sp_replwritetovarbin' wurde nicht gefunden, weil es nicht vorhanden ist oder Sie nicht die erforderliche Berechtigung haben.
FEHLER: Problemumgehung konnte auf <instancename> nicht angewendet werden.

Ursache 1

Diese Fehlermeldung wird angezeigt, wenn Sie nicht über die zum Anwenden der Änderung erforderlichen Berechtigungen verfügen. Diese Fehlermeldung deutet darauf hin, dass Sie sich erfolgreich bei der Instanz "<instancename>" anmelden konnten.

Der Fehler tritt typischerweise in SQL Server Express auf, wenn die Gruppe "Vordefiniert\Benutzer" standardmäßig über ein Login für die Datenbank verfügt. Die Gruppe ist jedoch kein Mitglied der Rolle "sysadmin".

Die Fehlermeldung kann auch auftreten, wenn Sie die Prozedur "sp_replwritetovarbin" verworfen haben. So lautete die Empfehlung in einem Bericht eines anderen Anbieters. Wir empfehlen das Verwerfen der gespeicherten Prozedur nicht. Stattdessen empfehlen wir die Anwendung dieser Lösung.

Lösung 1

Stellen Sie sicher, dass das Konto, mit dem Sie die Verbindung herstellen, ein Mitglied der Rolle "sysadmin" für diese Instanz der Datenbank ist. Wenn das Konto kein Mitglied ist, fügen Sie entweder das Benutzerkonto, mit dem Sie die Verbindung herstellen, zur Rolle "sysadmin" hinzu, oder verwenden Sie ein anderes Benutzerkonto. In SQL Server 2005 und früheren Versionen ist die Gruppe "Vordefiniert\Administratoren" standardmäßig ein Mitglied der Rolle "sysadmin". Wenn Sie dieses Skript unter Windows Vista oder Windows Server 2008 ausführen, stellen Sie sicher, dass Sie es in einer Eingabeaufforderung mit erhöhten Rechten ausführen.

Problem 2

Wenn Sie das Skript in SQL Server 2005 ausführen, wird die folgende Fehlermeldung angezeigt:
Fehler: Die Verbindung mit <instancename> konnte nicht hergestellt werden.
FEHLER: 0x-2147217843 - Fehler bei der Anmeldung für den Benutzer '<user>'.
FEHLER: Problemumgehung konnte auf <instancename> nicht angewendet werden.

Ursache 2

Diese Fehlermeldung wird angezeigt, wenn Sie keine Verbindung zur Instanz "<instancename>" herstellen konnten, obwohl die Instanz vorhanden ist.

Die Fehlermeldung tritt typischerweise auf, wenn Sie eine Verbindung mit Instanzen von Windows Internal Database oder Microsoft SQL Server 2000 Desktop Edition (Windows) herstellen. Typischerweise verfügen Benutzerkonten nicht über Logins für diese Datenbanken.

Lösung 2

Stellen Sie sicher, dass das zum Ausführen des Skripts verwendete Konto für die Datenbank über ein Login verfügt, das Mitglied der Rolle "sysadmin" ist.

Es empfiehlt sich nicht, einzelne Benutzer zu Windows Internal Database und zu den Datenbanken von Microsoft SQL Server 2000 Desktop Edition (Windows) hinzuzufügen. Wenn Sie dies tun, können die hinzugefügten Benutzer den ordentlichen Betrieb der Datenbanken stören. Stellen Sie in diesem Fall sicher, dass Sie die Verbindung mit einem Konto herstellen, das Mitglied der Rolle "sysadmin" ist. Die Gruppe "Vordefiniert\Administratoren" in Windows ist typischerweise standardmäßig ein Mitglied der Rolle "sysadmin" in SQL Server 2005 und früheren Versionen. Wenn Sie dieses Skript unter Windows Vista oder Windows Server 2008 ausführen, stellen Sie sicher, dass Sie es in einer Eingabeaufforderung mit erhöhten Rechten ausführen.

Problem 3

Möglicherweise treffen Sie auf eine Instanz einer Datenbank mit dem Namen MICROSOFT##SSEE. Sie haben diese Datenbank jedoch nicht installiert.

Ursache 3

Bei dieser Datenbank handelt es sich um die Windows-interne Datenbank, die auch als "SQL Server Embedded Edition" oder manchmal als "Windows Internal Database" oder "Microsoft SQL Server 2000 Desktop Edition (Windows)" bezeichnet wird. Sie wird mit einigen Produkten von Microsoft installiert, beispielsweise SharePoint Services.

Lösung 3

Das Problemumgehungsskript funktioniert für die Windows-interne Datenbank. Es ist keine Aktion Ihrerseits erforderlich.

Bei der Deinstallation einiger Anwendungen wird Windows Internal Database nicht gelöscht. Weitere Informationen zum Entfernen von Windows Internal Database finden Sie im folgenden Artikel der Microsoft Knowledge Base:
920277 Windows Internal Database wird nicht im Programm Software aufgelistet und nicht entfernt, wenn Sie Windows SharePoint Services 3.0 vom Computer entfernen

Problem 4

Wenn Sie das Skript ausführen, wird die folgende Fehlermeldung angezeigt:
Fehler: Die Verbindung mit .\<instancename> konnte nicht hergestellt werden.
FEHLER: 0x-2147467259 - [DBNETLIB][ConnectionOpen (Connect()).]SQL-Server existiert nicht oder Zugriff verweigert

Ursache 4

Die Fehlermeldung wird angezeigt, wenn die folgenden Bedingungen vorliegen:
  • Sie haben eine 32-Bit-Version von SQL Server 2000 auf einem x64-Bit-Betriebssystem installiert.
  • Sie haben eine 64-Bit-Version von SQL Server 2005 oder SQL Server 2008 auf dem Computer installiert.
Die Fehlermeldung tritt auf, wenn das Skript die 64-Bit-Version der Datei "dbmslpcn.dll" verwendet. Diese Version kann nicht mit den WoW-Instanzen von SQL Server 2000 kommunizieren.

Lösung 4

Starten Sie das Skript mit der 32-Bit-Version der Datei "cscript.exe" aus dem Ordner "%WINDOWS%\SysWOW64". Dadurch wird die 32-Bit-Version der Datei "dbmslpcn.dll" geladen, die WoW-Instanzen erkennen kann.

Informationsquellen

Weitere Informationen darüber, wie Sie Version und Edition von SQL Server ermitteln, finden Sie im folgenden Artikel der Microsoft Knowledge Base:
321185 Ermitteln der SQL Server-Version und -Edition

Weitere Informationen

In der folgenden Tabelle sind wichtige technische Revisionen zu diesem Artikel aufgeführt. Die Versionsnummer und die Datumsangabe bei "Geändert am" in diesem Artikel können auf geringfügige redaktionelle oder strukturelle Änderungen an den Inhalten hinweisen, die nicht in der Tabelle aufgelistet sind.
Tabelle minimierenTabelle vergrößern
DatumRevisionen
31. Dezember 2008Enthält ein aktualisiertes Skript, das SQL Server-Failoverclusterinstanzen erkennt.
30. Dezember 2008Enthält ein aktualisiertes Skript, das 32-Bit-Versionen von SQL Server erkennt, die unter 64-Bit-Versionen von Windows ausgeführt werden.

Eigenschaften

Artikel-ID: 961040 - Geändert am: Dienstag, 6. Januar 2009 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Windows Internal Database
  • Microsoft SQL Server 2005 Service Pack 2, wenn verwendet mit:
    • Microsoft SQL Server 2005 Standard Edition
    • Microsoft SQL Server 2005 Enterprise Edition
    • Microsoft SQL Server 2005 Express Edition
    • Microsoft SQL Server 2005 Express Edition with Advanced Services
    • Microsoft SQL Server 2005 Enterprise X64 Edition
    • Microsoft SQL Server 2005 Standard X64 Edition
    • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Service Pack 4
Keywords: 
kbpubtypekc kbfix kbbug kbsecvulnerability kbsecbulletin kbsecurity KB961040
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com