Masseneinfügung über Netzwerk


13

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.


8
Hat das Konto , unter dem SQL Server ausgeführt wird, eine Zugriffsberechtigung '\\COMPUTER01\FOLDER01\TextFile.txt'? Beachten Sie, dass sich das Konto im Allgemeinen von Ihrem Konto unterscheidet.
Damien_The_Unbeliever

3
Können Sie auch den genauen Fehler hinzufügen, den Sie erhalten?
Ypercubeᵀᴹ

Zusätzlich zu @Damien_The_Unbeliever: "Um eine gemeinsam genutzte Datendatei anzugeben, verwenden Sie den UNC-Namen (Universal Naming Convention), der die allgemeine Form hat: \\ Servername \ Freigabename \ Pfad \ Dateiname"
JoseTeixeira,

@ypercube - Masseneinfügung nicht möglich, da die Datei '\\ SERVERNAME \ FOLDERNAME \ textFile.txt' nicht geöffnet werden konnte. Betriebssystemfehlercode 5 (Zugriff verweigert.) Vielen Dank, Sir
Jonas Ivy V. Imperial

Ich habe das gleiche Problem mit der gleichen Domain und domänenübergreifenden (Betriebssystem-Fehlercode 5 (Zugriff verweigert.)). Interessanterweise, wenn ich XP_CMDSHELL verwende, um zu testen, ob die Datei vorhanden ist, oder wenn ich die Datei sogar verschieben kann, aber die Masseneinfügung den Zugriff verweigert. Das SQL-Dienstkonto und mein Windows-Konto verfügen beide über Berechtigungen für den Ordner.

Antworten:


14

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.


1

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.


1

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.


-2

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


Sind Sie sicher, dass es der gleiche Fehler ist?
Dezso

Dies hat nichts mit Zugriffsverweigerungsfehlern zu tun. Dies behebt nur Dateiformatfehler.
Julien Vavasseur
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.