คุณอาจพบ ข้อผิดพลาดของเซิร์ฟเวอร์ SQL 18456 หากเซิร์ฟเวอร์ไม่สามารถตรวจสอบการเชื่อมต่อได้ และอาจเกิดจากการไม่มีสิทธิ์ของผู้ดูแลระบบในเซิร์ฟเวอร์ SQL หรือหากโปรโตคอล TCP/IP ถูกปิดใช้งานในการตั้งค่าเซิร์ฟเวอร์ SQL
ปัญหานี้เกิดขึ้นเมื่อผู้ใช้พยายามเชื่อมต่อกับเซิร์ฟเวอร์ SQL (ในเครื่องหรือระยะไกล) แต่พบข้อผิดพลาด 18456 (โดยมีสถานะต่างกัน)
คุณสามารถแก้ไขข้อผิดพลาดของเซิร์ฟเวอร์ SQL 18456 ได้โดยลองวิธีแก้ปัญหาด้านล่าง แต่ก่อนหน้านั้น ให้ตรวจสอบว่า รีสตาร์ท หรือไม่ เซิร์ฟเวอร์ คอมพิวเตอร์ไคลเอนต์ และคอมพิวเตอร์เครือข่ายช่วยแก้ปัญหาได้ นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณกำลังพิมพ์ชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง (ไม่ก็อปแปะที่อยู่)
นอกจากนี้ ให้ตรวจสอบว่าคุณป้อนชื่อฐานข้อมูลที่ถูกต้องหรือไม่ (ไม่มีการพิมพ์ผิด) และตรวจดูให้แน่ใจว่าคุณได้อัปเดตไฟล์การกำหนดค่าตามนั้นแล้ว นอกจากนี้ ให้ตรวจสอบว่า ปลดล็อกบัญชี (โดยใช้แบบสอบถาม ALTER LOGIN WITH PASSWORD=UNLOCK) แก้ปัญหา หากคุณเห็นข้อผิดพลาดในบันทึกข้อผิดพลาดของ SQL ตรวจสอบให้แน่ใจว่า เซิร์ฟเวอร์ SQL ของคุณไม่ได้ถูกโจมตี . สุดท้ายแต่ไม่ท้ายสุด ตรวจสอบให้แน่ใจว่า นาฬิกาของเซิร์ฟเวอร์ และนาฬิกาคอมพิวเตอร์ไคลเอนต์ ตั้งค่าอย่างถูกต้อง .
เปิด SQL Server เป็นผู้ดูแลระบบและปิดการใช้งาน UAC บนเซิร์ฟเวอร์
คุณอาจพบข้อผิดพลาด 18456 หากเซิร์ฟเวอร์ SQL ไม่มีสิทธิ์ระดับสูงในการดำเนินการและเปิดใช้งานในฐานะผู้ดูแลระบบ (หรือการปิดใช้งานการควบคุม UAC บนเซิร์ฟเวอร์) อาจแก้ปัญหาได้
เปิด SQL Server ในฐานะผู้ดูแลระบบ
- คลิก Windows และพิมพ์ SQL Server Management Studio .
- คลิกขวาที่ SMSS แล้วเลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
- จากนั้นคลิก ใช่ (หากได้รับข้อความแจ้ง UAC) และตรวจสอบว่าเซิร์ฟเวอร์ SQL ไม่มีข้อผิดพลาด 18456 หรือไม่
- หากไม่เป็นเช่นนั้น ให้ตรวจสอบว่าการปิดใช้งาน UAC บนเครื่องเซิร์ฟเวอร์ช่วยแก้ปัญหาได้หรือไม่
เปิดเซิร์ฟเวอร์ SQL ในโหมดผู้ใช้คนเดียว
- คลิก Windows พิมพ์และเปิด SQL Server Configuration Manager .
- ตอนนี้ คลิกขวา บน SQL Server บริการ (ในแท็บบริการเซิร์ฟเวอร์ SQL) และเลือก คุณสมบัติ .
- จากนั้นไปที่ พารามิเตอร์เริ่มต้น แท็บและใน ระบุพารามิเตอร์เริ่มต้น กล่อง พิมพ์:
-m
- ตอนนี้คลิกที่ เพิ่ม และ สมัคร การเปลี่ยนแปลง.
- จากนั้น คลิกขวา บน SQL Server บริการและเลือก เริ่มต้นใหม่ .
- ตอนนี้ คลิก Windows , ประเภท:SQL Server Management Studio , คลิกขวาที่ SMS และเลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
- ตอนนี้ ให้ตรวจสอบว่าคุณสามารถเชื่อมต่อกับ SQL Server ในฐานะผู้ดูแลระบบได้หรือไม่
- ถ้าเป็นเช่นนั้น เพิ่มบัญชีโดเมน ไปยังเซิร์ฟเวอร์ SQL และ กำหนด เป็น SysAdmin บทบาท.
- ตอนนี้กลับไปที่ SQL Server Configuration Manager หน้าต่างและ ลบ พารามิเตอร์ -m ในแท็บพารามิเตอร์เริ่มต้น
- จากนั้น เริ่มต้นใหม่ บริการ SQL Server (ขั้นตอนที่ 3) และตรวจสอบว่าเซิร์ฟเวอร์ SQL ทำงานได้ดีหรือไม่
หากปัญหายังคงอยู่ ให้ตรวจสอบว่า พารามิเตอร์การเริ่มต้น หรือ รายละเอียดเส้นทาง ได้รับการกำหนดค่าอย่างเหมาะสม หากปัญหายังคงอยู่ ตรวจสอบให้แน่ใจว่าบัญชีผู้ใช้ .ของคุณ มีการอนุญาตที่จำเป็น ไปยังฐานข้อมูล/บริการรายงาน จากนั้นตรวจสอบว่าปัญหาได้รับการแก้ไขหรือไม่
เปิดใช้งานโปรโตคอล TCP/IP ในตัวจัดการการกำหนดค่าเซิร์ฟเวอร์
รหัสข้อผิดพลาด 18456 ในเซิร์ฟเวอร์ SQL หมายความว่าเซิร์ฟเวอร์ไม่สามารถตรวจสอบการเชื่อมต่อได้ และสิ่งนี้อาจเกิดขึ้นได้หากโปรโตคอล TCP/IP ที่จำเป็นในการเข้าถึงฐานข้อมูลบนเครือข่ายถูกปิดใช้งานในตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ ในบริบทนี้ การเปิดใช้งาน TCP/IP ใน SQL Server Configuration Manager อาจแก้ปัญหาได้
- คลิก Windows และขยาย Microsoft SQL Server ด้วยชื่อปีเช่น 2008 (คุณอาจต้องเลื่อนเล็กน้อยเพื่อค้นหาตัวเลือก)
- เปิด ตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL และคลิกใช่ (หากได้รับข้อความแจ้ง UAC)
- จากนั้นขยาย การกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL และเลือกโปรโตคอล สำหรับ (ชื่อเซิร์ฟเวอร์/ฐานข้อมูล) ในบานหน้าต่างด้านซ้าย
- ตอนนี้ ในบานหน้าต่างด้านขวา ดับเบิลคลิก บน TCP/IP แล้วเลือก ใช่ ในเมนูแบบเลื่อนลงของ เปิดใช้งาน .
- จากนั้น สมัคร การเปลี่ยนแปลงของคุณแล้วคลิก Windows .
- ตอนนี้พิมพ์ บริการ , คลิกขวา ที่ผลลัพธ์ของบริการ แล้วเลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
- จากนั้น คลิกขวา บน SQL Server (ด้วยชื่อเซิร์ฟเวอร์) แล้วเลือก รีสตาร์ท .
- ตอนนี้ ให้ตรวจสอบว่าเซิร์ฟเวอร์ SQL ปราศจากข้อผิดพลาด 18456
หากไม่ได้ผล ให้ตรวจสอบให้แน่ใจว่าคุณกำลังเชื่อมต่อกับพอร์ตที่ถูกต้อง ของเซิร์ฟเวอร์ SQL (โดยเฉพาะถ้าคุณใช้เซิร์ฟเวอร์ในสภาพแวดล้อมแบบหลายเซิร์ฟเวอร์)
เปลี่ยนโหมดการรับรองความถูกต้องของเซิร์ฟเวอร์ SQL
เซิร์ฟเวอร์ SQL อาจแสดงข้อผิดพลาด 18456 หากวิธีการรับรองความถูกต้องของเซิร์ฟเวอร์ SQL ไม่ได้รับการกำหนดค่าอย่างเหมาะสม (เช่น คุณกำลังพยายามเข้าสู่ระบบโดยใช้การรับรองความถูกต้องของเซิร์ฟเวอร์ SQL ในขณะที่เซิร์ฟเวอร์ได้รับการกำหนดค่าให้ใช้การรับรองความถูกต้องของ Windows) ในกรณีนี้ การเปลี่ยนวิธีการรับรองความถูกต้องของเซิร์ฟเวอร์ SQL อาจช่วยแก้ปัญหาได้ ก่อนดำเนินการต่อ ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานสถานะการเข้าสู่ระบบสำหรับผู้ใช้ปัจจุบัน (เช่น SA)
- ใน Object Explorer ของ Microsoft SQL Server Management Studio คลิกขวา บน เซิร์ฟเวอร์ . ของคุณ และเลือกคุณสมบัติ .
- ตอนนี้ ในบานหน้าต่างด้านซ้าย ให้เลือก ความปลอดภัย และในบานหน้าต่างด้านขวา ให้เลือก SQL Server และ Windows Authentication (หรือในทางกลับกัน).
- จากนั้น สมัคร การเปลี่ยนแปลงของคุณและใน Object Explorer คลิกขวา บน เซิร์ฟเวอร์ .
- ตอนนี้ เลือก เริ่มต้นใหม่ และเมื่อรีสตาร์ทแล้ว ให้ตรวจสอบว่าคุณสามารถเชื่อมต่อกับฐานข้อมูลโดยไม่มีข้อผิดพลาด 18456 หรือไม่
หากคุณไม่สามารถเข้าสู่ระบบ SQL ได้ คุณอาจติดตั้ง MS Power Tools และเรียกใช้สิ่งต่อไปนี้ในคำสั่ง :
psexec.exe -i -s ssms.exe
หลังจากนั้น คุณอาจใช้บัญชีการติดตั้งของ SQL เพื่อทำการเปลี่ยนแปลงและตรวจสอบให้แน่ใจว่าไม่ได้ปิดใช้งานบัญชี SA:
เปิดใช้งานบัญชี SA และรีเซ็ตรหัสผ่านบัญชี
หากคุณไม่สามารถเชื่อมต่อกับ SQL Server การเปิดใช้งานบัญชี SA ของเซิร์ฟเวอร์ SQL และการรีเซ็ตรหัสผ่านอาจช่วยแก้ปัญหาได้
- เปิด Microsoft SQL Server Management Studio (คุณอาจต้องใช้บัญชีผู้ดูแลโดเมน) และขยายความปลอดภัย .
- จากนั้น ดับเบิลคลิก ใน การเข้าสู่ระบบ และเปิด SA .
- ตอนนี้ป้อน รหัสผ่านใหม่ และยืนยันรหัสผ่าน (ตรวจสอบให้แน่ใจว่าคุณใช้รหัสผ่านที่รัดกุม)
- จากนั้นไปที่ บทบาทเซิร์ฟเวอร์ และตรวจสอบให้แน่ใจว่ากำลังติดตาม เลือกบทบาทแล้ว:
Public Sysadmin
- ตอนนี้ไปที่ สถานะ แท็บ และในบานหน้าต่างด้านขวา เลือก เปิดใช้งาน (ภายใต้การเข้าสู่ระบบ)
- จากนั้น สมัคร การเปลี่ยนแปลงของคุณแล้วคลิก Windows ปุ่ม.
- ตอนนี้พิมพ์ บริการ และ คลิกขวา กับมัน
- จากนั้นเลือก เรียกใช้ในฐานะผู้ดูแลระบบ และนำทางไปยัง บริการเซิร์ฟเวอร์ SQL .
- ตอนนี้ คลิกขวา และเลือก รีสตาร์ท .
- เมื่อเริ่มบริการใหม่แล้ว ให้ตรวจสอบว่าข้อผิดพลาด 18456 ของเซิร์ฟเวอร์ SQL ถูกล้างหรือไม่
สร้างการเข้าสู่ระบบใหม่และเริ่มต้นบริการรายงานใหม่
หากคุณไม่สามารถใช้บัญชีใดๆ เพื่อเชื่อมต่อกับฐานข้อมูล การสร้างข้อมูลเข้าสู่ระบบใหม่และเริ่มต้นบริการการรายงานใหม่อาจช่วยแก้ปัญหาได้
- เปิดตัว การจัดการเซิร์ฟเวอร์ Microsoft SQL สตูดิโอและขยายความปลอดภัย แท็บ
- จากนั้นขยาย การเข้าสู่ระบบ และ คลิกขวา กับมัน
- ตอนนี้ เลือก เข้าสู่ระบบใหม่ และ ป้อน ข้อมูลประจำตัว (ในชื่อเข้าสู่ระบบให้เลือกบัญชีคอมพิวเตอร์) หากใช้การรับรองความถูกต้องของเซิร์ฟเวอร์ SQL
- จากนั้นอย่าลืมยกเลิกการเลือก “ผู้ใช้ต้องเปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งถัดไป ” และเลือก ฐานข้อมูล .
- ตอนนี้ไปที่ บทบาทเซิร์ฟเวอร์ และเลือก สาธารณะ บทบาท.
- จากนั้น ใน การแมปผู้ใช้ ตรวจสอบให้แน่ใจว่าได้เลือกฐานข้อมูล แล้วเลือก db_owner .
- ตอนนี้ สมัคร การเปลี่ยนแปลงของคุณแล้วคลิก Windows .
- จากนั้นพิมพ์ บริการ และ คลิกขวา เกี่ยวกับผลการบริการ จากนั้นเลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
- ตอนนี้ คลิกขวา บน บริการรายงานเซิร์ฟเวอร์ SQL และเลือก เริ่มต้นใหม่ .
- จากนั้น เชื่อมต่อใหม่ ไปยังฐานข้อมูลและตรวจสอบว่าเซิร์ฟเวอร์ SQL ปราศจากข้อผิดพลาด 18456
หากเป็นเช่นนั้น ตรวจสอบให้แน่ใจว่าคุณได้สร้างผู้ใช้ใน BUILTIN\administrators จากนั้นคุณสามารถใช้ผู้ใช้นั้นเพื่อจัดการ SQL Server หากคุณกู้คืนฐานข้อมูลจากข้อมูลสำรอง จะดีกว่าที่จะลบและเพิ่มผู้ใช้ใหม่ เพื่อล้างรายการผู้ใช้เก่า หากคุณต้องการเรียกใช้เซิร์ฟเวอร์ SQL ในฐานะผู้ใช้อื่น ให้พิมพ์ Microsoft SQL Server ใน Windows Search Shift+คลิกขวา บน SQL Server และเลือก เรียกใช้ในฐานะผู้ใช้อื่น . สุดท้ายแต่ไม่ท้ายสุด ตรวจสอบว่าใช้ Azure Data Studio . หรือไม่ กับเซิร์ฟเวอร์ SQL แยกแยะปัญหา