คุณอาจเจอ SQL Server Error 18456 หาก Server ไม่สามารถยืนยันตัวตนการเชื่อมต่อได้ สาเหตุอาจมาจาก: ไม่มีสิทธิ์ Administrator ให้ SQL Server หรือ TCP/IP Protocol ถูก Disable ใน SQL Server Settings
ปัญหาเกิดเมื่อพยายามเชื่อมต่อ SQL Server (Local หรือ Remote) แล้วเจอ Error 18456 (พร้อม State ต่างๆ)

คุณสามารถแก้ Error 18456 ได้ด้วยวิธีด้านล่าง แต่ก่อนอื่น เช็คว่า Restart Server, Client Computer, และ Networking Computers ช่วยได้ไหม และแน่ใจว่าพิมพ์ Username และ Password ถูกต้อง (อย่า Copy-Paste Address) เช็คว่า Database Name ถูกต้อง (ไม่มี Typo) และ Update Config File ตามนั้น เช็คว่า Unlock Account ด้วย Query ALTER LOGIN WITH PASSWORD= UNLOCK ช่วยได้ไหม หากเห็น Error ใน SQL Error Log ตรวจสอบว่า SQL Server ไม่ได้ถูกโจมตี สุดท้าย เช็คว่า นาฬิกา Server และ Client ตั้งเวลาถูกต้อง
เปิด SQL Server เป็น Administrator และ Disable UAC บน Server
อาจเจอ Error 18456 ถ้า SQL Server ไม่มี Elevated Permissions การเปิดเป็น Administrator (หรือ Disable UAC บน Server) อาจช่วยได้
เปิด SQL Server เป็น Administrator
- กด Windows พิมพ์ SQL Server Management Studio
- คลิกขวา SMSS เลือก Run as Administrator

- คลิก Yes (ถ้ามี UAC Prompt) เช็คว่า SQL Server หาย Error 18456 แล้ว
- ถ้ายังไม่หาย ลอง Disable UAC บน Server Machine ดู
เปิด SQL Server ใน Single User Mode
- กด Windows เปิด SQL Server Configuration Manager
- คลิกขวา SQL Server Service (ในแท็บ SQL Server Services) เลือก Properties

- ไปแท็บ Startup Parameters ในกล่อง Specify a Startup Parameter พิมพ์:
-m
- คลิก Add Apply

- คลิกขวา SQL Server Service เลือก Restart

- กด Windows พิมพ์ SQL Server Management Studio คลิกขวา SMSS Run as Administrator
- เช็คว่าเชื่อมต่อ SQL Server เป็น Admin ได้ไหม
- ถ้าได้ ให้ Add Domain Account ให้ SQL Server และ Assign ให้เป็น SysAdmin Role
- กลับไป SQL Server Configuration Manager Remove -m Parameter ใน Startup Parameters
- Restart SQL Server Service (ขั้น 3) เช็คว่า SQL Server ทำงานปกติ
ถ้ายังมีปัญหา เช็คว่า Startup Parameters หรือ Path Details Config ถูกต้อง ถ้ายังเป็นอยู่ ตรวจสอบว่า User Account มี Required Permissions ให้ Database/Reporting Services แล้วเช็คอีกครั้ง
Enable TCP/IP Protocol ใน Server Configuration Manager
Error 18456 หมายถึง Server ไม่สามารถ Authenticate Connection ได้ อาจเกิดจาก TCP/IP Protocol ที่จำเป็นสำหรับเข้าถึง Database บน Network ถูก Disable ใน Server Configuration Manager การ Enable TCP/IP อาจช่วยได้
- กด Windows ขยาย Microsoft SQL Server พร้อมปี เช่น 2008 (อาจต้อง Scroll หา)
- เปิด SQL Server Configuration Manager คลิก Yes (ถ้ามี UAC)
- ขยาย SQL Server Network Configuration เลือก Protocols for (Server/Database Name) ใน Page ซ้าย
- ใน Page ขวา Double-click TCP/IP เลือก Yes ใน Dropdown Enabled

- Apply การเปลี่ยนแปลง กด Windows

- พิมพ์ Services, คลิกขวา Result เลือก Run as Administrator

- คลิกขวา SQL Server (กับชื่อ Server) เลือก Restart

- เช็คว่า SQL Server หาย Error 18456 แล้ว
ถ้ายังไม่ได้ ตรวจสอบว่าเชื่อมต่อ Port ที่ถูกต้อง ของ SQL Server (โดยเฉพาะถ้าใช้ Multi-Server Environment)
เปลี่ยน Authentication Mode ของ SQL Server
SQL Server อาจแสดง Error 18456 ถ้า Authentication Method ไม่ได้ Config ถูกต้อง (เช่น Login ด้วย SQL Server Authentication แต่ Server ตั้งค่าเป็น Windows Authentication) การเปลี่ยน Authentication Method อาจช่วยได้ ก่อนหน้านั้น ตรวจสอบว่า Status Login ของ User ปัจจุบัน (เช่น SA) เป็น Enabled
- ใน Object Explorer ของ SSMS Right-click Server เลือก Properties
- Page ซ้ายเลือก Security Page ขวาเลือก SQL Server and Windows Authentication (หรือกลับกัน)

- Apply ใน Object Explorer Right-click Server
- เลือก Restart Restart เสร็จ เช็คว่าเชื่อมต่อ Database ได้โดยไม่มี Error 18456
ถ้า Login ไม่ได้ ลอง Install MS Power Tools รันคำสั่งใน Elevated Command:
psexec.exe -i -s ssms.exe
หลังจากนั้น ใช้ Installation Account ของ SQL ทำการเปลี่ยนแปลง และแน่ใจว่า SA Account ไม่ได้ถูก Disable
Enable SA Account และ Reset รหัสผ่าน
ถ้าเชื่อมต่อ SQL Server ไม่ได้ การ Enable SA Account และ Reset Password อาจช่วยได้
- เปิด Microsoft SQL Server Management Studio (อาจต้องใช้ Domain Admin Account) ขยาย Security
- Double-click Logins เปิด SA

- ใส่ New Password ยืนยันรหัสผ่าน (ใช้ Strong Password)
- ไปแท็บ Server Roles ติ๊ก Role ดังนี้:
Public Sysadmin

- ไปแท็บ Status Page ขวาเลือก Enabled (ใต้ Login)

- Apply กด Windows
- พิมพ์ Services คลิกขวา
- เลือก Run as Administrator ไปที่ SQL Server Service
- คลิกขวา เลือก Restart
- Service Restart เสร็จ เช็คว่า Error 18456 หายแล้ว
สร้าง Login ใหม่ และ Restart Reporting Services
ถ้าใช้ Account ไหนไม่ได้เชื่อมต่อ Database การสร้าง Login ใหม่และ Restart Reporting Services อาจช่วยได้
- เปิด Microsoft SQL Server Management Studio ขยาย Security Tab
- ขยาย Logins คลิกขวา เลือก New Login
- ใส่ Credentials (ใน Login Name เลือก Computer Account) ถ้าใช้ SQL Server Authentication

- ติ๊กถอด "User Must Change Password at Next Login" เลือก Database
- ไปแท็บ Server Roles เลือก Public Role
- แท็บ User Mapping ติ๊ก Choose Database เลือก db_owner

- Apply กด Windows
- พิมพ์ Services คลิกขวา Result เลือก Run as Administrator
- คลิกขวา SQL Server Reporting Service เลือก Restart

- Reconnect ไป Database เช็คว่า SQL Server หาย Error 18456 แล้ว
ถ้าได้ ให้แน่ใจว่าสร้าง User ใน BUILTIN\administrators แล้วใช้ User นั้นจัดการ SQL Server ได้ หาก Restore Database จาก Backup ควร Remove และ Re-add Users เพื่อล้าง Entry เก่า ถ้าอยากรัน SQL Server เป็น User อื่น ให้พิมพ์ Microsoft SQL Server ใน Windows Search Shift+Right-click SQL Server เลือก Run as a Different User สุดท้าย เช็คว่าใช้ Azure Data Studio กับ SQL Server แก้ปัญหาได้ไหม