แทรกจำนวนมากผ่านเครือข่าย


13

ใครสามารถช่วยฉันด้วยสิ่งเหล่านี้?

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

ข้อผิดพลาดแสดงไม่สามารถเปิดได้:

ไม่สามารถแทรกจำนวนมากได้เนื่องจากไม่สามารถเปิดไฟล์ '\ SERVERNAME \ FOLDERNAME \ textFile.txt' รหัสข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง)

พา ธ อยู่บนคอมพิวเตอร์เครื่องอื่นบนเครือข่าย


8
ไม่บัญชีที่ SQL Server จะทำงานภายใต้ได้รับอนุญาตให้เข้าถึง'\\COMPUTER01\FOLDER01\TextFile.txt'? โปรดทราบว่าโดยทั่วไปบัญชีจะแตกต่างจากบัญชีของคุณ
Damien_The_Unbeliever

3
คุณสามารถเพิ่มข้อผิดพลาดที่แน่นอนที่คุณได้รับหรือไม่
ypercubeᵀᴹ

นอกจาก @Damien_The_Unbeliever: "ในการระบุไฟล์ข้อมูลที่ใช้ร่วมกันให้ใช้ชื่อแบบแผนการตั้งชื่อสากล (UNC) ซึ่งใช้รูปแบบทั่วไป \\ Servername \ Sharename \ Path \ Filename"
JoseTeixeira

@ypercube - ไม่สามารถแทรกจำนวนมากได้เนื่องจากไม่สามารถเปิดไฟล์ '\\ SERVERNAME \ FOLDERNAME \ textFile.txt' รหัสข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง) ขอบคุณครับคุณ
Jonas Ivy V. Imperial

ฉันมีปัญหาเดียวกันโดยใช้โดเมนเดียวกันและข้ามโดเมน (รหัสข้อผิดพลาดระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง)) ที่น่าสนใจคือถ้าฉันใช้ XP_CMDSHELL เพื่อทดสอบว่าไฟล์มีอยู่หรือฉันสามารถย้ายไฟล์ได้ แต่การแทรกจำนวนมากจะปฏิเสธการเข้าถึง บัญชีบริการ sql และบัญชี windows ของฉันทั้งสองมีสิทธิ์ไปยังโฟลเดอร์

คำตอบ:


14

ฉันจะเพิ่มความเชื่อมั่นและถือว่าคุณเชื่อมต่อกับ SQL Server โดยใช้ Windows Authentication ในกรณีเช่นนี้คุณมีคู่ hop Kerberos: หนึ่งปฮอปเป็นโปรแกรมลูกค้าของคุณเชื่อมต่อกับ SQL Server, กระโดดสองคือ SQL Server \\COMPUTER01การเชื่อมต่อระยะไกล การกระโดดสองครั้งดังกล่าวตกอยู่ภายใต้ข้อ จำกัด ของการมอบสิทธิ์แบบ Constrained Delegation และคุณจะสิ้นสุดการเข้าถึงการแชร์แบบไม่ระบุชื่อและด้วยเหตุนี้การเข้าถึงถูกปฏิเสธ

ในการแก้ไขปัญหาคุณต้องเปิดใช้งานการมอบหมายที่ จำกัด สำหรับบัญชีบริการ SQL Server บล็อกนี้วิธีการ: การแทรกจำนวนมากของเซิร์ฟเวอร์ SQL ที่มีการมอบหมายที่ จำกัด (การเข้าถึงถูกปฏิเสธ)มีตัวอย่างของวิธีการทำและฉันหวังว่าขั้นตอนในการ 'เปิดใช้งานการมอบหมายที่ไม่มีข้อ จำกัด ' นั้นเป็นเพียงพิมพ์ผิด ความชั่วร้ายเพียงธรรมดา

ในกรณีที่ฉันกระโดดปืนและคุณลงชื่อเข้าใช้ SQL Server โดยใช้การรับรองความถูกต้องของ SQL คุณจะต้องสร้างข้อมูลประจำตัวสำหรับการเข้าสู่ระบบ SQL ของคุณและใช้เพื่อเข้าถึงทรัพยากรเครือข่าย CREATE CREDENTIALดู


1

เซิร์ฟเวอร์ sql พยายามเปิดไฟล์เซิร์ฟเวอร์ไฟล์บอกว่า "ปฏิเสธการเข้าถึง" เพราะบัญชี SQL Server ทำงานภายใต้ไม่มีสิทธิ์ในการเปิดไฟล์ เปลี่ยนการตั้งค่าความปลอดภัยในไฟล์ตามนั้นและมันจะทำงาน


1

ฉันจะเรียกใช้สคริปต์ภายใต้การเข้าสู่ระบบ SQL (ด้วยการอนุญาตเป็นกลุ่ม) และให้การอนุญาตในโฟลเดอร์เครือข่ายรับรองความถูกต้องกับบัญชีบริการ SQL หรือบัญชีตัวแทนของเซิร์ฟเวอร์ SQL


-2

ฉันจะบอกคุณว่าอะไรที่ได้ผลสำหรับฉันทุกครั้งที่ฉันได้รับข้อความนี้ ฉันเปิดไฟล์ csv เป็นข้อความใน notepad และลบบรรทัดช่องว่างทั้งหมดในไฟล์ฉันไม่เห็นบรรทัดว่างเหล่านั้นในไฟล์ excel โดยปกติแล้วจะเป็นเพียงบรรทัดสุดท้ายที่ดูเหมือนว่าจะปรากฏแม้ว่าจะว่างเปล่า


คุณแน่ใจหรือว่ามันเป็นข้อผิดพลาดเดียวกัน
dezso

สิ่งนี้ไม่เกี่ยวข้องกับข้อผิดพลาดถูกปฏิเสธการเข้าถึง แก้ไขข้อผิดพลาดรูปแบบไฟล์นี้เท่านั้น
Julien Vavasseur
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.