Chèn hàng loạt qua mạng


13

Ai đó có thể giúp tôi với những điều này?

BULK INSERT DATABESE01.dbo.TABLE01
FROM '\\COMPUTER01\FOLDER01\TextFile.txt'
WITH
(
    FIELDTERMINATOR = ' ',
    rowterminator = '\n',
    tablock
)

Lỗi hiển thị, không thể mở:

Không thể chèn hàng loạt vì không thể mở tệp '\ SERVERNAME \ FOLDERNAME \ textFile.txt'. Mã lỗi hệ điều hành 5 (Truy cập bị từ chối.)

Đường dẫn là trên một máy tính khác trên mạng.


8
Liệu các tài khoản mà SQL Server đang chạy dưới có quyền truy cập '\\COMPUTER01\FOLDER01\TextFile.txt'? Lưu ý rằng tài khoản thường sẽ khác với tài khoản của bạn .
Damien_The_Unbeliever

3
Bạn cũng có thể thêm các lỗi chính xác bạn nhận được?
ypercubeᵀᴹ

ngoài @Damien_The_Unbeliever: "Để chỉ định tệp dữ liệu được chia sẻ, hãy sử dụng tên quy ước đặt tên chung (UNC), có dạng chung, \ Servername \ Sharename \ Path \ Filename"
JoseTeixeira

@ypercube - Không thể chèn hàng loạt vì không thể mở tệp '\ SERVERNAME \ FOLDERNAME \ textFile.txt'. Mã lỗi hệ điều hành 5 (Truy cập bị từ chối.). cảm ơn ngài
Jonas Ivy V. Imperial

Tôi có cùng một vấn đề khi sử dụng cùng một tên miền và tên miền chéo (Mã lỗi hệ điều hành 5 (Truy cập bị từ chối.)). Thật thú vị, nếu tôi sử dụng XP_CMDSHELL để kiểm tra xem tệp có tồn tại hay tôi thậm chí có thể di chuyển tệp, nhưng việc chèn hàng loạt sẽ khiến quyền truy cập bị từ chối. Tài khoản dịch vụ sql và tài khoản windows của tôi đều có quyền đối với thư mục.

Câu trả lời:


14

Tôi sẽ tạo ra một bước nhảy vọt về niềm tin và cho rằng bạn kết nối với SQL Server bằng Windows xác thực. Trong trường hợp như vậy, bạn có một bước nhảy kép Kerberos: một bước nhảy là ứng dụng khách của bạn kết nối với Máy chủ SQL, bước nhảy thứ hai là Máy chủ SQL kết nối với điều khiển từ xa \\COMPUTER01. Một bước nhảy kép như vậy nằm trong các hạn chế của Phân quyền ràng buộc và cuối cùng bạn truy cập vào chia sẻ dưới dạng Đăng nhập ẩn danh và do đó Truy cập bị từ chối.

Để khắc phục sự cố, bạn cần kích hoạt phân quyền bị ràng buộc cho tài khoản dịch vụ SQL Server. Blog này Cách thực hiện: Chèn hàng loạt máy chủ SQL với Phân quyền bị ràng buộc (Truy cập bị từ chối) có một ví dụ về cách thực hiện và tôi thực sự hy vọng rằng bước về cách 'kích hoạt ủy quyền không bị ràng buộc' chỉ là một lỗi chính tả khi ủy nhiệm không bị ràng buộc Chỉ đơn giản là xấu xa.

Trong trường hợp tôi nhảy súng và bạn đang đăng nhập vào SQL Server bằng Xác thực SQL, bạn sẽ cần tạo thông tin đăng nhập SQL và sử dụng thông tin đó để truy cập tài nguyên mạng. Xem CREATE CREDENTIAL.


1

Máy chủ Sql đã cố mở tệp, máy chủ tệp nói với nó "Truy cập bị từ chối" vì tài khoản SQL Server chạy dưới không có quyền mở tệp. Thay đổi cài đặt bảo mật trên tệp cho phù hợp và nó sẽ hoạt động.


1

Tôi sẽ chạy tập lệnh theo Đăng nhập SQL (với quyền số lượng lớn) và cho phép quyền trên thư mục mạng xác thực đối với Tài khoản dịch vụ SQL hoặc Tài khoản đại lý máy chủ SQL.


-2

Tôi sẽ cho bạn biết những gì làm việc cho tôi mỗi khi tôi nhận được tin nhắn này. Tôi mở tệp csv dưới dạng văn bản trong notepad và xóa tất cả các dòng dấu cách trong tệp, tôi không thể thấy các dòng trống trong tệp excel. Thông thường nó chỉ là dòng cuối cùng dường như xuất hiện mặc dù nó trống


Bạn có chắc đó là lỗi tương tự?
dezso

Điều này không có gì để làm với các lỗi từ chối truy cập. Điều này chỉ sửa lỗi định dạng tập tin.
Julien Vavasseur
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.