ฉันมีโหนด Microsoft SQL Server 2016 คู่หนึ่งในกลุ่ม Always On Availability ฉันกำลังพยายามดำเนินการBULK INSERT
(โดยใช้แบบสอบถาม SQL Server 2016 Management Studio) ในไฟล์ที่อยู่ในคลัสเตอร์เซิร์ฟเวอร์ล้มเหลวของ Windows Server 2016 แต่ฉันได้รับข้อผิดพลาดต่อไปนี้:
เกี่ยวกับข่าวสาร 4861 ระดับ 16 สถานะ 1
ไม่สามารถโหลดจำนวนมากได้เนื่องจากไม่สามารถเปิดไฟล์ "\ nas2.my.domain \ Microsoft SQL Server 2016 Enterprise \ test.txt" รหัสข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง)
สิ่งนี้จะเกิดขึ้นโดยไม่คำนึงว่าฉันใช้ชื่อโหนดที่ใช้งาน ( nas2.my.domain
) หรือฟังคลัสเตอร์ล้มเหลว ( nas.my.domain
) หรือไม่
หลังจากมองไปรอบ ๆ ผมพบว่านี่เป็นเพราะของ SQL Server BULK INSERT
ไม่สามารถที่จะปลอมตัวเป็นบัญชีผู้ใช้ฉันเชื่อมต่อกับเนื่องจากความแตกต่างกับ
หากคุณเชื่อมต่อกับ SQL Server โดยใช้ Windows Authentication บัญชีบริการ SQL Server จะพยายามเลียนแบบบัญชีผู้ใช้ของคุณเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ไฟล์ หากคุณเชื่อมต่อโดยใช้การตรวจสอบความถูกต้องของ SQL Server จะเชื่อมต่อกับไฟล์เซิร์ฟเวอร์เช่นบัญชีบริการ SQL Server
หากการมอบหมายและการรับบทบาทไม่ได้รับการกำหนดค่าอย่างเหมาะสม (สถานะเริ่มต้น) บริการ SQL Server จะไม่สามารถปลอมแปลงบัญชีผู้ใช้ของคุณและจะกลับไปพยายามเชื่อมต่อกับเซิร์ฟเวอร์ไฟล์ในฐานะผู้ใช้ที่ไม่ระบุชื่อ
สิ่งนี้สามารถยืนยันได้โดยดูจากบันทึกเหตุการณ์ความปลอดภัยบนเซิร์ฟเวอร์ไฟล์ ข้อเท็จจริงเหล่านี้พร้อมกับคำแนะนำเกี่ยวกับการกำหนดค่าการมอบหมายที่ไม่มีข้อ จำกัด และข้อ จำกัด มีการบันทึกไว้ในลิงก์เหล่านี้:
ฉันได้ลองทำตามคำแนะนำในคู่มือของthesqldude แล้วแต่มันยังไม่ทำงาน
ฐานข้อมูลที่ฉันพยายามทำBULK INSERT
ไม่ใช่ส่วนหนึ่งของกลุ่มความพร้อมใช้งานดังนั้นเฉพาะโหนด MSSQL1 เท่านั้นที่ควรเกี่ยวข้อง ไฟล์เซิร์ฟเวอร์ใช้งานอยู่บนโหนด NAS2 การตรวจสอบบันทึกเหตุการณ์บนเซิร์ฟเวอร์ไฟล์จะแสดงว่ายังคงมีปัญหานี้และ SQL Server พยายามตรวจสอบสิทธิ์กับเซิร์ฟเวอร์ไฟล์ในฐานะผู้ใช้ที่ไม่ระบุชื่อแทนที่จะปลอมตัวเป็นบัญชีผู้ใช้ของฉัน
ไม่มีใครรู้ว่าเกิดอะไรขึ้น? หรือถ้ามีอะไรเปลี่ยนแปลงใน SQL Server 2016 เพื่อให้คำแนะนำเหล่านี้ล้าสมัย?
- รายการบันทึกเหตุการณ์ความปลอดภัยของเซิร์ฟเวอร์ไฟล์
- การมอบหมายบัญชีบริการ
- บัญชีบริการ SPN
- การมอบหมายบัญชีคอมพิวเตอร์ SQL Server # 1
- SPNs บัญชีไฟล์เซิร์ฟเวอร์ # 2
- วัตถุนโยบายกลุ่ม
sys.dm_exec_connections
- Kerberos
ฉันสามารถยืนยันได้ว่าวัตถุนโยบายกลุ่มนี้ได้ถูกนำไปใช้กับ MSSQL1 ผ่านgpresult.exe /R
และทั้งโหนด SQL และ File Server ถูกรีบูตหลังจากนั้นเพื่อให้แน่ใจว่าแคชใด ๆ ได้รับการล้าง