Zum Inhalt wechseln


Foto

SQL - OPENROWSET mit Microsoft.ACE.OLEDB.12.0 nur als Admin möglich


  • Bitte melde dich an um zu Antworten
4 Antworten in diesem Thema

#1 orlando1965

orlando1965

    Newbie

  • 4 Beiträge

Geschrieben 16. Juni 2012 - 06:13

Hallo zusammen.
Ich arbeite mit Windows 7, auf dem ein MSSQL Server 2008 R2 Express läuft. Ich möchte nun Abfragen auf Office-Dokumente laufen lassen. Zum Beispiel in der Form:

SET @anz = (SELECT COUNT(B.ISTTAG) FROM (
SELECT A.INVENTURSTICHTAG AS ISTTAG FROM OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\Users\Ronald\Documents\Visual Studio 2008\Projects\DocAlfredo\ausgabe\Inventurmappe.xlsx;Extended Properties=Excel 12.0 Xml')...[Inventurbestand$] AS A
GROUP BY A.INVENTURSTICHTAG) AS B)


Das funktioniert auch, so lange ich mich als Windows-Administrator am SQL-Server anmelde. Wenn ich mich allerdings als normaler Windows-Benutzer anmelde und die Abfrage starte erhalte ich die Meldung

Der OLE DB-Anbieter 'Microsoft.ACE.OLEDB.12.0' für den Verbindungsserver '(null)' hat die Meldung 'Unbekannter Fehler' zurückgeben.
Meldung 7303, Ebene 16, Status 1, Zeile 1
Das Datenquellenobjekt des OLE DB-Anbieters 'Microsoft.ACE.OLEDB.12.0' für den Verbindungsserver '(null)' kann nicht initialisiert werden.

Die Meldung erhalte ich auch, wenn der windows-Benutzer alle Berechtigungen im SQL-Server hat.

Ich gehe davon aus, dass irgendwo im Dateisystem eine Berechtigung fehlt, weis aber nicht so ganz, wo ich da anfangen sollte. Bzw. ich habe schon alle Freigaben erteilt

Vieleicht kann mir ja hier jemand weiterhelfen.

Danke schon einmal im Voraus.

Gruß
Orlando

#2 Sunny61

Sunny61

    Expert Member

  • 17.128 Beiträge

Geschrieben 19. Juni 2012 - 08:03

SET @anz = (SELECT COUNT(B.ISTTAG) FROM (
SELECT A.INVENTURSTICHTAG AS ISTTAG FROM OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\Users\Ronald\Documents\Visual Studio 2008\Projects\DocAlfredo\ausgabe\Inventurmappe.xlsx;Extended Properties=Excel 12.0 Xml')...[Inventurbestand$] AS A
GROUP BY A.INVENTURSTICHTAG) AS B)


Das funktioniert auch, so lange ich mich als Windows-Administrator am SQL-Server anmelde. Wenn ich mich allerdings als normaler Windows-Benutzer anmelde und die Abfrage starte erhalte ich die Meldung

Der OLE DB-Anbieter 'Microsoft.ACE.OLEDB.12.0' für den Verbindungsserver '(null)' hat die Meldung 'Unbekannter Fehler' zurückgeben.
Meldung 7303, Ebene 16, Status 1, Zeile 1
Das Datenquellenobjekt des OLE DB-Anbieters 'Microsoft.ACE.OLEDB.12.0' für den Verbindungsserver '(null)' kann nicht initialisiert werden.


Hat der am SQL Server angemeldete Benutzer auch genügend NTFS-Berechtigungen um in das Verzeichnis C:\Users\Ronald\Documents\ zugreifen zu dürfen?
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#3 orlando1965

orlando1965

    Newbie

  • 4 Beiträge

Geschrieben 26. Juni 2012 - 11:52

Hallo Sunny61,
check ich sofort nach meiner Rückkehr aus dem Urlaub. Ich gehe aber davon aus, dass alle Benutzer voll berechtigt sind.
Gruß
Orlando

#4 orlando1965

orlando1965

    Newbie

  • 4 Beiträge

Geschrieben 01. Juli 2012 - 11:38

:), ich habs geschafft.
Es lag entweder an einer nicht eingeräumten Ordnerzugriffsberechtigung oder an einer (längst vergessenen) persistenten VBA-SQL-Connection in ACCESS 2010, die auf den SQL-Serverzugriff. Nachdem ich die Ordnerzugriffsberechtigungen nochmals für jeden zugänglich gemacht hatte und die VBA-Anwendung entfernt hatte, konnte ich den OPENDATASOURCE-Befehl auch als Anwender - und nicht nur als Administrator - anwenden.
Danke für den Tipp mit NTFS.
Gruß
Orlando

#5 Sunny61

Sunny61

    Expert Member

  • 17.128 Beiträge

Geschrieben 01. Juli 2012 - 20:15

Freut mich für Dich und Danke für die Rückmeldung. ;)
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/