Eisbergle
Benutzer
- Beiträge
- 6
Ich habe folgende Aufgabe (welche "eigentlich" auch gelöst ist .. bis auf ...):
Es sollen diverse Excel-Dateien von einem Daten-Server in eine SQL-Datenbank auf einem separaten SQL-Server eingelesen werden, z.B. Kundendaten, Artikeldaten und so weiter. Das ganze läuft zum Test in einer Windows Domäne mit DC, Daten-Server, SQL-Server und Client-PC. Getestet wird hier auf den Servern und dem Client immer mit dem gleichen User, einem Domänen-Admin mit vollen Rechten auf alle Daten.
Schritt 1: Import-Prozedur (SSIS-Package) mit SQL Server Data Tools für Visual Studio. Entwickelt und getestet auf Client-PC - funktioniert. (Die Excel-Datei wird über UNC-Pfad aufgerufen)
Schritt 2: Veröffentlichen in SQL-Server. Dort SSIS-Paket getestet - funktioniert. (Problem: Der Dienst SQL Server Integration Service, muss mit Domänenrechten auf dem Daten-Server ausgeführt werden. Geändert über SQL Configuration Manager)
Schritt 3: Start über eine Stored Procedure im SQL-Management Studio auf dem SQL-Server - funktioniert.
Schritt 4: Aufruf dieser Stored Procedure über eine ACCESS-VBA-Anwendung auf dem SQL-Server - funktioniert!
So, nun zum Problem:
das ganze soll natürlich ein Anwender über die ACCESS-Anwendung auf dem Client starten. (Bitte keine Diskussionen darüber, warum das ACCESS sein muss, das Problem ist vom Frontend unabhängig. Auch Diskussionen, darüber das man das doch zeitgesteuert auf dem SQL-Server ablaufen lassen kann usw. usw. sind eigentlich nicht hilfreich, da ich nicht das ganze komplexe Anwendungsszenario darlegen möchte, das dauert zu lange und führt zu nichts.)
also wieder zu Schritt 4, jedoch auf dem Client PC:
Schritt 4: Aufruf dieser Stored Procedure über eine ACCESS-VBA-Anwendung auf dem CLIENT - FEHLER!
im SQL-Management Studio nach dem Fehler geschaut: Die Excel-Datei auf dem Daten-Server wird nicht gefunden, bzw. fehlen die Rechte.
zum Test zurück zu Schritt 3, jedoch auf dem Client PC
Schritt 3: Start über eine Stored Procedure im SQL-Management Studio auf dem CLIENT- FEHLER.
Es tritt der gleiche Fehler auf, daher kann ab diesem Moment der Test über ACCESS vernachlässigt werden.
Kopiere ich die Daten vom Server (\\server\pfad\name.xlsx) auf den SQL-Server (x:\Import\name.xlsx), so funktionieren sowohl Stored Procedure, wie auch ACCESS auch auf dem Client-PC.
So nun die eigentliche Frage zum Problem:
Ich gehe von einem Rechte-Problem aus.
Welcher Dienst oder User auf dem SQL-Server muss die Rechte auf die Daten-Datei haben.?
(Workaround könnte sein: Die Daten in der Anwendung vor dem Import auf den SQL-Server zu kopieren. Davor schrecke ich jedoch zurück, da es sehr viele und sehr umfangreiche Daten sind. Eine "saubere" Lösung ist das aus meiner Sicht zudem auch nicht)
Es sollen diverse Excel-Dateien von einem Daten-Server in eine SQL-Datenbank auf einem separaten SQL-Server eingelesen werden, z.B. Kundendaten, Artikeldaten und so weiter. Das ganze läuft zum Test in einer Windows Domäne mit DC, Daten-Server, SQL-Server und Client-PC. Getestet wird hier auf den Servern und dem Client immer mit dem gleichen User, einem Domänen-Admin mit vollen Rechten auf alle Daten.
Schritt 1: Import-Prozedur (SSIS-Package) mit SQL Server Data Tools für Visual Studio. Entwickelt und getestet auf Client-PC - funktioniert. (Die Excel-Datei wird über UNC-Pfad aufgerufen)
Schritt 2: Veröffentlichen in SQL-Server. Dort SSIS-Paket getestet - funktioniert. (Problem: Der Dienst SQL Server Integration Service, muss mit Domänenrechten auf dem Daten-Server ausgeführt werden. Geändert über SQL Configuration Manager)
Schritt 3: Start über eine Stored Procedure im SQL-Management Studio auf dem SQL-Server - funktioniert.
Schritt 4: Aufruf dieser Stored Procedure über eine ACCESS-VBA-Anwendung auf dem SQL-Server - funktioniert!
So, nun zum Problem:
das ganze soll natürlich ein Anwender über die ACCESS-Anwendung auf dem Client starten. (Bitte keine Diskussionen darüber, warum das ACCESS sein muss, das Problem ist vom Frontend unabhängig. Auch Diskussionen, darüber das man das doch zeitgesteuert auf dem SQL-Server ablaufen lassen kann usw. usw. sind eigentlich nicht hilfreich, da ich nicht das ganze komplexe Anwendungsszenario darlegen möchte, das dauert zu lange und führt zu nichts.)
also wieder zu Schritt 4, jedoch auf dem Client PC:
Schritt 4: Aufruf dieser Stored Procedure über eine ACCESS-VBA-Anwendung auf dem CLIENT - FEHLER!
im SQL-Management Studio nach dem Fehler geschaut: Die Excel-Datei auf dem Daten-Server wird nicht gefunden, bzw. fehlen die Rechte.
zum Test zurück zu Schritt 3, jedoch auf dem Client PC
Schritt 3: Start über eine Stored Procedure im SQL-Management Studio auf dem CLIENT- FEHLER.
Es tritt der gleiche Fehler auf, daher kann ab diesem Moment der Test über ACCESS vernachlässigt werden.
Kopiere ich die Daten vom Server (\\server\pfad\name.xlsx) auf den SQL-Server (x:\Import\name.xlsx), so funktionieren sowohl Stored Procedure, wie auch ACCESS auch auf dem Client-PC.
So nun die eigentliche Frage zum Problem:
Ich gehe von einem Rechte-Problem aus.
Welcher Dienst oder User auf dem SQL-Server muss die Rechte auf die Daten-Datei haben.?
(Workaround könnte sein: Die Daten in der Anwendung vor dem Import auf den SQL-Server zu kopieren. Davor schrecke ich jedoch zurück, da es sehr viele und sehr umfangreiche Daten sind. Eine "saubere" Lösung ist das aus meiner Sicht zudem auch nicht)