Fehlermeldungen 7399 und 7300 beim Zugreifen auf Verbindungsserver

Gilt für: Windows Vista UltimateWindows Vista Enterprise 64-bit editionHyper-V Server 2008

Problembeschreibung


Stellen Sie sich folgendes Szenario vor:
  • Sie haben eine SQL Server-Instanz, die auf einem System installiert ist, Windows Vista oder höher ausgeführt wird.
  • In dieser Instanz von SQL Server konfigurieren Sie Verbindungsserver zu einer OLE DB-Datenquelle mit einem OLE DB-Provider für die Datenquelle.
  • OLE DB-Provider konfiguriert außerhalb des SQL Server-Prozesses instanziiert werden. Normalerweise ist dies die Standardeinstellung für die meisten OLE DB-Provider außer SQL Native Client. Diese werden Option Allow inprocess gesteuert, die mithilfe des Anbieters Eigenschaften in SQL Server Management Studio festgelegt werden können.
  • Die Sicherheit von Verbindungsservern ist konfiguriert die werden mit aktuellen Sicherheitskontext der Anmeldung Option.
In diesem Szenario Anwendern Protokolle in der SQL Server-Instanz mithilfe der Windows-Authentifizierung und versuchen, Zugriff auf den Verbindungsserver erleben Fehlermeldung sie, die der folgenden ähnelt:
Msg 7399, Ebene 16, Status 1, Zeile 1 OLE DB Provider < Name des OLEDB-Anbieters > für Verbindungsserver < verknüpfte Servername > hat einen Fehler gemeldet. Der Provider hat keine Informationen zu dem Fehler bereitgestellt. Msg 7330, Ebene 16, Status 2 Zeile 1Cannot abrufen eine Zeile von OLE DB-Provider < OLE DB-Providername > für den Verbindungsserver.
Hinweis: In diesem Kontext nicht privilegierten Benutzer ist ein standard Benutzer nicht zu einer Gruppe privilegierten Zugriff auf Windows-Ebene gehört (z. B.: Administratoren)

Ursache


Bei OLE DB-Anbieter außerhalb des Prozesses ausgeführt wird, behandelt der OLE DB-Schnittstelle Remoting-Dll (msdaps.dll) die Kommunikation zwischen Proxy-Seite-Prozess in dem OLE DB-Consumer befindet und den Stub Seite Prozess in dem OLE DB-Anbieter befindet. In der aktuellen Implementierung. OLE DB Remoting verwendet benannte Dateizuordnungsobjekte OLE DB-Rowsetdaten übertragen. Auf Systemen mit Vista oder eine höhere Version des Betriebssystems müssen der Proxy und Stub-Seite laufen in anderen Sitzungen aufgrund der Sitzung 0-Isolierung und damit OLE DB Remoting einen globalen Proxy-Stub-Kommunikation auf diesen Systemen. Die Proxy-Stub-Kommunikation, da das Benutzerkonto nicht über ausreichende Berechtigungen zum Erstellen einer globalen Dateizuordnungsobjekt in der Konfiguration angegebenen Verbindungsserver verfügt, kann nicht initiiert werden was Fehlermeldungen beschriebenen Symptome Abschnitt dieses Artikels.

Problemumgehung


Sie können Problem mit einer der folgenden Methoden umgehen:Abhilfe 1: konfigurieren den OleDb-Provider ausgeführt. Hinweis: Sie können nicht diesen Workaround für OLEDB-Provider verwenden, die auf .net-Versionen, die älter als 4.0. Abhilfe 2: Weisen Sie die Benutzer das Benutzerrecht "Erstellen globaler Objekte". Gehen Sie hierzu folgendermaßen vor:
  1. Klicken Sie auf Start, zeigen Sie auf Verwaltungund klicken Sie dann auf Lokale Sicherheitsrichtlinie.
  2. Erweitern Sie Lokale Richtlinien, und klicken Sie dann auf Zuweisen von Benutzerrechten.
  3. Doppelklicken Sie im rechten Bereich Erstellen globaler Objekte.
  4. Klicken Sie im Dialogfeld Lokale Sicherheitsrichtlinie auf Hinzufügen.
  5. Klicken Sie im Dialogfeld Benutzer oder Gruppe auswählen auf Benutzerkonten zu hinzufügen, klicken Sie auf Hinzufügen, und klicken Sie auf OK.
  6. Klicken Sie auf OK.
Status: Microsoft arbeitet derzeit an diesem Problem in zukünftigen Versionen des Produkts behoben.