Ich versuche, die folgende Abfrage auszuführen:
%Vor%Aber ich bekomme diesen Fehler:
%Vor%Ich habe Folgendes versucht:
%Vor%Und:
%Vor%Wenn ich zu "Server Objects" gehe - & gt; 'Verknüpfte Server' - & gt; "Providers", Microsoft.ACE.OLEDB.12.0 ist aufgeführt.
Access-Datenbankmodul x64 ist installiert, alle Office-Produkte sind 64-Bit und mein SQL Server ist auch 64-Bit.
Wenn es darauf ankommt, haben alle Benutzer Zugriff auf den Ordner Temp im Ordner Benutzer.
(Dies sind alle Vorschläge, die ich in ähnlichen Antworten auf diese Frage gefunden habe)
Bearbeiten: Verwenden von SQL Server 2014.
Ich habe von diesem Blog die beiden fehlenden Schritte gefunden mach es für mich funktionierend.
1) Überprüfen Sie die Berechtigungen für den Ordner "Temp"
Dies wird benötigt, da der Provider den temporären Ordner beim Abrufen der Daten verwendet. Der Ordner kann abhängig davon, ob Sie ein lokales Systemkonto oder ein Netzwerkdomänenkonto verwenden, eines der folgenden sein.
Für Netzwerkkonten ist der Ordner
: \ Windows \ Dienstprofile \ NetworkService \ AppData \ Local \ Tempund für das lokale System Konto seine
: \ Windows \ Dienstprofile \ LocalService \ AppData \ Local \ TempKlicken Sie mit der rechten Maustaste auf diesen Ordner und geben Sie ihm Lesezugriff auf das Konto, das den Code ausführt.
2) Überprüfen Sie den zugewiesenen MemToLeave-Speicherbereich
- Öffnen Sie den SQL Server-Konfigurationsmanager - & gt; Dienstleistungen - & gt; SQL Server-Dienst.
- Klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften.
- Gehen Sie zum erweiterten Tab und fügen Sie -g512 hinzu; zu Startparameter Eigenschaft und es wird das Problem lösen.
Sie können es auch ohne AllowInProcess
arbeiten lassen, wenn Sie den Anweisungen in Dieser MSDN-Artikel . Die wichtigsten Anweisungen sind:
Um verknüpfte Serverabfragen ausführen zu können, müssen Sie RPC OUT in den verknüpften Servereigenschaften ebenfalls auf true setzen.
Berechtigungen zum Einrichten des Verbindungsservers mit dem prozessexternen Anbieter erforderlich:
Überprüfen Sie die Einstellungen in DCOMCNFG: Start - & gt; Ausführen - & gt; Dcomcnfg
Komponentendienste - & gt; Mein Computer --- & gt; Eigenschaften
Vergewissern Sie sich, dass die folgenden Optionen auf der Registerkarte "Standardeigenschaften" festgelegt sind:
- "Verteilte COM auf diesem Computer aktivieren" ist aktiviert.
- Standardauthentifizierung = Verbinden.
- Standardidentitätswechselebene = Identifizieren oder Annehmen der Identität.
Komponentendienste - & gt; Mein Computer - & gt; DCOM-Konfiguration - & gt; MSDAINITIALISIEREN
- Klicken Sie mit der rechten Maustaste auf MSDAINITIALIZE - & gt; Eigenschaften - & gt; Sicherheit
- Fügen Sie das SQL Server-Dienstkonto (bei Verbindung mit dem SQL-Server mit SQL-Anmeldung) oder das Windows-Benutzerkonto unter "Start- und Aktivierungsberechtigungen", "Zugriffsberechtigungen" und "Konfigurationsberechtigungen" hinzu.
- Erteilen Sie diesen Konten die vollen Rechte.
Starten Sie den Server neu
Ich habe dieses Problem auch gemeistert und die Schritte wie bei Ihnen gemacht. Endlich habe ich den Fehler als Ihren gefunden. Am Ende benutze ich einen SuperUser Account und benutze dieses Skript wie folgt und das Problem wurde behoben.
%Vor%Tags und Links sql-server excel openrowset