Kann mir jemand dabei helfen?
BULK INSERT DATABESE01.dbo.TABLE01
FROM '\\COMPUTER01\FOLDER01\TextFile.txt'
WITH
(
FIELDTERMINATOR = ' ',
rowterminator = '\n',
tablock
)
Der Fehler zeigt, konnte nicht geöffnet werden:
Masseneinfügung nicht möglich, da die Datei '\ SERVERNAME \ FOLDERNAME \ textFile.txt' nicht geöffnet werden konnte. Betriebssystemfehlercode 5 (Zugriff verweigert.)
Der Pfad befindet sich auf einem anderen Computer im Netzwerk.
sql-server
bulk-insert
Jonas Ivy V. Imperial
quelle
quelle
'\\COMPUTER01\FOLDER01\TextFile.txt'
? Beachten Sie, dass sich das Konto im Allgemeinen von Ihrem Konto unterscheidet.Antworten:
Ich werde einen Vertrauenssprung machen und davon ausgehen, dass Sie mithilfe der Windows-Authentifizierung eine Verbindung zu SQL Server herstellen. In einem solchen Fall haben Sie einen Kerberos-Double-Hop: Ein Hop ist Ihre Client-Anwendung, die eine Verbindung zum SQL Server herstellt, ein zweiter Hop ist der SQL Server, der eine Verbindung zum Remote-Server herstellt
\\COMPUTER01
. Solch ein Double Hop unterliegt den Beschränkungen der eingeschränkten Delegierung, und Sie greifen letztendlich als anonyme Anmeldung auf die Freigabe zu, sodass der Zugriff verweigert wird.Um das Problem zu beheben, müssen Sie die eingeschränkte Delegierung für das SQL Server-Dienstkonto aktivieren. In diesem Blog Gewusst wie: Masseneinfügung in SQL Server mit eingeschränkter Delegierung (Zugriff verweigert) wird ein Beispiel für die Vorgehensweise gegeben, und ich hoffe wirklich, dass der Schritt zum Aktivieren der nicht eingeschränkten Delegierung nur ein Tippfehler ist, da es sich um eine nicht eingeschränkte Delegierung handelt einfach nur böse.
In dem Fall, dass ich die Waffe hochgezogen habe und Sie sich mit der SQL-Authentifizierung bei SQL Server anmelden, müssen Sie einen Berechtigungsnachweis für Ihre SQL-Anmeldung erstellen und diesen für den Zugriff auf Netzwerkressourcen verwenden. Sehen
CREATE CREDENTIAL
.quelle
SQL Server hat versucht, die Datei zu öffnen. Der Dateiserver hat "Zugriff verweigert" gemeldet, da das Konto, unter dem SQL Server ausgeführt wird, keine Berechtigung zum Öffnen der Datei hat. Ändern Sie die Sicherheitseinstellungen für die Datei entsprechend und es wird funktionieren.
quelle
Ich würde das Skript unter einer SQL-Anmeldung (mit Bulkadmin-Berechtigung) ausführen und die Berechtigung für den Netzwerkordner mit dem SQL-Dienstkonto oder dem SQL Server-Agentenkonto authentifizieren lassen.
quelle
Ich werde Ihnen jedes Mal sagen, was für mich funktioniert, wenn ich diese Nachricht erhalte. Ich öffne die CSV-Datei als Text in einem Editor und lösche alle Leerzeilen in der Datei. Ich kann diese Leerzeilen in der Excel-Datei nicht sehen. Normalerweise ist es nur die letzte Zeile, die angezeigt wird, obwohl sie leer ist
quelle