2016-07-02 21 views
0

Ok, ein physischer Server mit Hyper-V. Eine VM ist für die SQL 2016-Datenbank vorgesehen. Eine andere VM ist für die webbasierte Anwendung, die mit der DB kommuniziert. Eine dritte VM, die als Dateiserver verwendet wird. Alle Dateien sind auf dem Dateiserver gespeichert.SQL Bulk Insert - Zugriff verweigert (Fehlercode 5)

Der Dateispeicherort, der in den Bulk eingefügt werden muss, wird mit den DB-Dienstkonten gemeinsam genutzt (derzeit sind dies speziell für Domänenkonten - eine für jeden Dienst).

Die Datei kann nicht importiert werden - Zugriff verweigert. Ich habe versucht, die Freigabe auf Jeder zu setzen - funktioniert immer noch nicht. Ich änderte sogar die Sicherheitsrichtlinie, um anonymen Benutzern die gleichen Berechtigungen wie jeder zu erlauben - funktioniert immer noch nicht.

Ich weiß nicht, wie man über diese Delegation-Methode so nicht sicher, was dort zu tun ist.

Was kann ich noch tun, um eine einfache Datei in eine DB zu importieren?

+0

Wie versuchen Sie, die Dateien zu importieren? – Eric

+0

Masseneinfügung, mit dem Dateipfad als \\ Servername \ Freigabename \ Ordner \ Datei usw. – DARKOCEAN

+0

Sie legen die Berechtigungen der Freigabe auf die Dienstkonten zulassen, aber haben Sie auch die NTFS-Berechtigungen für die Ordner selbst festgelegt? Wenn Sie einen Ordner innerhalb der Freigabe auswählen und sich die Berechtigungen ansehen, hat das Dienstkonto Leseberechtigung? – Eric

Antwort

0

Haben Sie Kerberos aktiviert? Wenn die Verbindung als Anonym kommt, dosent bedeutet das, dass die Verbindung NTLM verwendet und es ein Double-Hop-Problem ist?

+0

Soweit ich sehen kann, ist es aktiviert Benutzer und die Computer werden für die Delegierung vertraut. – DARKOCEAN

+0

Außerdem habe ich eine kleine Abfrage in SSMS ausgeführt, und es verwendet nicht die SPNs. Überprüfen der Serverprotokolle, es sagt, dass es sich nicht anmeldet, so dass es zurück zu NTLM Ich weiß nicht, wo es schief geht, aber der SQL Log sayd gibt den Windows Return Code 0x2098 state 15 zurück. – DARKOCEAN

+0

Ich hoffe, Sie haben sys.dm_exec_connections abgefragt. Die Spalte auth_scheme sollte anzeigen, wenn die Verbindungen Kerberos verwenden. Ich glaube, der erste Schritt wäre, sicherzustellen, dass die Verbindungen zu SQL Server Kerberos verwendet. – jesijesi