Fehler: Sie erhalten eine Fehlermeldung "Zugriff verweigert" angezeigt, wenn eine Abfrage eine extended aufruft gespeicherten Prozedur nach der Aktualisierung von SQL Server 2000 auf SQL Server 2000 Service Pack 4


Wichtig Dieser Artikel enthält Informationen dazu, wie Sie die Registrierung ändern. Stellen Sie sicher, dass Sie die Registrierung sichern, bevor Sie sie ändern. Stellen Sie sicher, dass Sie wissen, wie Sie die Registrierung wiederherstellen, falls ein Problem auftritt. Für weitere Informationen zum Sichern, Wiederherstellen und Bearbeiten der Registrierung klicken Sie auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
256986 Beschreibung der Microsoft Windows-Registrierung

Problembeschreibung


Nach der Aktualisierung von Microsoft SQL Server 2000-basierten Computer auf Microsoft SQL Server 2000 Service Pack 4 (SP4) eine SQL Server-Abfrage, eine erweiterten gespeicherten Prozedur Registrierung fehlschlagen und Sie erhalten die folgende Fehlermeldung angezeigt:
Zugriff wurde verweigert.
Fehlermeldung Fehler bei Verwendung eines erweiterten gespeicherten Prozeduren in den folgenden Registrierungsschlüssel:
  • xp_regread
  • xp_instance_regread
  • xp_regenumkeys
  • xp_instance_regenumkeys
  • xp_regenumvalues
  • xp_instance_regenumvalues
  • xp_regwrite
  • xp_instance_regwrite
  • xp_regaddmultistring
  • xp_instance_regaddmultistring
  • xp_regremovemultistring
  • xp_instance_regremovemultistring
  • xp_regdeletevalue
  • xp_instance_regdeletevalue
  • xp_regdeletekey
  • xp_instance_regdeletekey

Ursache


Dieses Problem tritt auf, weil SQL Server 2000 SP4 einer Beschränkung auf welche Registrierungspfade erweiterte Registrierung implementiert gespeicherte Prozeduren zugreifen können. Wenn eine Abfrage eine Registrierung der erweiterten gespeicherten Prozedur aufgerufen wird, durchsucht die Registrierung der erweiterten gespeicherten Prozedur den angeforderten Registrierungsunterschlüssel gegen eine Steuerelementliste Registrierungsstrukturen. Ist der Abfrage fordert Registrierungsunterschlüssel nicht in der Liste wird die folgende Fehlermeldung angezeigt:
"Zugriff verweigert."
Diese Fehlermeldung hat nichts mit den Berechtigungen des Benutzerkontos SQL Server im Rahmen der von dieser Registrierung erweiterte gespeicherte Prozeduren aufgerufen werden. Die Fehlermeldung tritt auf, selbst wenn der Benutzer über Administratorberechtigungen verfügt.


Hinweis Wenn die Fehlermeldung erweitert die Registrierung gespeicherte Prozedur gibt keine Ergebnisse.

Problemlösung


Warnung Schwerwiegende Probleme können auftreten, wenn Sie die Registrierung nicht ordnungsgemäß mit dem Registrierungseditor oder mithilfe einer anderen Methode ändern. Diese Probleme können eine Neuinstallation des Betriebssystems erfordern. Microsoft kann nicht garantieren, dass diese Probleme behoben werden können. Ändern Sie die Registrierung auf eigene Gefahr.

Warnung Die Registrierung erweiterte gespeicherte Prozeduren sind nicht dokumentiert und vorbehalten. Aus diesem Grund empfohlen nicht, diese Prozeduren im Clientcode aufzurufen. Künftige Implementierungen Verfahren möglicherweise nicht unterstützt. Darüber hinaus besteht keine Garantie, vergangene Implementierungen weiterhin in neueren Versionen von SQL Server unterstützt werden.

Um dieses Problem zu beheben, ändern Sie Registrierungsschlüssel, der Zugriff auf die Registrierung erweiterte gespeicherte Prozeduren steuert. Die Liste befindet sich in der Registrierung unter dem Unterschlüssel MSSQLServer . Finden Sie für eine Standardinstanz von SQL Server 2000 in der Registrierung den folgenden Unterschlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\ExtendedProcedures
Hinweis Dieser Registrierungsschlüssel wird beim Anwenden von SQL Server 2000 SP4 auf eine gruppierte Instanz von SQL Server nicht erstellt.

Finden Sie für eine benannte Instanz von SQL Server 2000 in der Registrierung den folgenden Unterschlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ < Instance_name > \MSSQLServer\ExtendedProcedure

Hinweis Instance_name ist der Name der SQL Server 2000 benannte Instanz.
Im Unterschlüssel ExtendedProcedure sind zwei REG_MULTI_SZ-Registrierungseinträge:
  • Xp_regread Pfade
  • Xp_regwrite_Allowed-Pfade
Xp_regread zulässig Pfade Eintrag enthält die folgenden zulässigen Werte für erweiterte gespeicherte Prozeduren nur-Lese-Registrierung:
  • xp_regread
  • xp_instance_regread
  • xp_regenumkeys
  • xp_instance_regenumkeys
  • xp_regenumvalues
  • xp_instance_regenumvalues
Xp_regwrite zulässig Pfade Eintrag enthält die folgenden zulässigen Werte für Schreibzugriff Registrierung erweiterte gespeicherte Prozeduren:
  • xp_regwrite
  • xp_instance_regwrite
  • xp_regaddmultistring
  • xp_instance_regaddmultistring
  • xp_regremovemultistring
  • xp_instance_regremovemultistring
  • xp_regdeletevalue
  • xp_instance_regdeletevalue
  • xp_regdeletekey
  • xp_instance_regdeletekey
Um Zugriff auf den Registrierungsunterschlüssel ermöglichen, die Sie möchten, können Sie Eintrag Xp_regread zulässig Pfade oder den Eintrag Xp_regwrite_Allowed Pfade löschen oder beide löschen. Darüber hinaus können Sie die Werte ändern, die im Eintrag Xp_regread zulässig Pfade oder den Eintrag Xp_regwrite_Allowed Pfade und fügen die erweiterte gespeicherte Prozedur, die die Abfrage zugreifen soll. Eintrag Xp_regread zulässig Pfade und Xp_regwrite zulässig Pfade Eintrag löschen, deaktivieren Sie die Beschränkung für die Registrierungswerte. Daher wird die erweiterte gespeicherte Prozedur Verhalten Registrierung vor SQL Server 2000 SP4 Verhalten. Um das gleiche Ergebnis zu erzielen, können Sie den ExtendedProcedures -Registrierungsschlüssel entfernen. Wir empfehlen, erweitern Sie jede Liste gültiger Werte anstelle die SQL Server 2000 SP4 implementiert Einschränkung deaktivieren.

Xp_regread Pfade

Der folgende Code ist ein Beispiel für den Eintrag Xp_regread Pfade zulässig .

Hinweis Instanz wird durch den tatsächlichen Namen einer Instanz von SQL Server ersetzt.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ < Instanz >

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQLServer


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Messaging Subsystem

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\MSSQLServer


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SQLCTRS

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SQLServer


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$<INSTANCE>


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLServer


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Services\SQLAgent$<INSTANCE>

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation


HKEY_CURRENT_USER\Software\Microsoft\Mail HKEY_CURRENT_USER\Control Panel\International

Xp_regwrite Pfade

Der folgende Code ist ein Beispiel für den Eintrag Xp_regwrite Pfade zulässig .

Hinweis Instanz wird durch den tatsächlichen Namen einer Instanz von SQL Server ersetzt.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ < Instanz >

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Services\SQLAgent$<INSTANCE>

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Replication

Weitere Informationen


Bei der Installation von SQL Server 2000 Service Pack 4 das Installationsprogramm ausspricht, beide Xp_regread zulässig Pfade Registrierungseintrags und der Registrierungseintrag Xp_regwrite zulässig Pfade mit erweiterten gespeicherten Prozeduren, SQL Server 2000 zugreifen können.

Weitere Informationen zu SQL Server 2000 Servicepacks finden Sie auf der folgenden Microsoft-Website: