จำเป็นต้องแก้ไหมครับ
คือ server ตอนนี้ใช้งานอยู่เลยไม่อยากลองเปลี่ยนกลัวว่าจะเกิดปัญหาขึ้นมาหลังจากลองเปลี่ยนโหมด เลยมาถามไว้ก่อนอะครับ
แล้วก็ ถ้าไม่สามารถเปลี่ยนได้
Code (C#)
string str = "Data Source=.\\SQLEXPRESS; AttachDbFilename=|DataDirectory|\\dbCenter.mdf; Integrated Security=True; User Instance=true";
ตรง Data Source = .\\SQLEXPRESS
คือใน SQL server management studio ผมเข้าไปมันไม่มี SQLEXPRESS ต่อท้าย หลัง server name
ผมจะแก้เป็นอะไรได้บ้างครับ
ตอนนี้ Server name มันขึ้นเป็น ชื่อ Computer ที่ตั้งไว้อยู่เท่านั้น
- ตรง connection string ถ้าใช้ SQLExpress ต้องใส่ \SQLExpress ต่อท้ายเสมอครับ และมี 2 กรณีครับ
กรณีเครื่องที่ลง SQLExpress กับเครื่องที่เป็น web server คือเครื่องเดียวกัน ใช้แค่
Data Source=.\SQLExpress
กรณีใช้ |DataDirectory| ก็ใช้เหมือนกับข้างบนครับ
Data Source=.\SQLExpress
กรณีเครื่องที่เป็น web server กับ เครื่องที่ลง SQLExpress อยู่กันคนละเครื่อง ต้องใส่ชื่อเครื่องเสมอครับ
Data Source=Server1\SQLExpress
- ส่วนเรื่องการเปลี่ยน mode จาก windows authen mode -> mix mode ถ้าเคยใช้ได้อยู่แล้วไม่ต้องเปลี่ยนส่วนอื่นเพิ่มก็ได้ครับ
Windows Authen mode = จะง่าย สบายกรณีที่ใช้ทุกอย่างเป็น microsoft หมด แค่กำหนดสิทธิ user ที่ต้องการก็จบ หมายถึง
ถ้าเครื่องที่เป็น web server กับ SQLServer (ทั้งแบบ SQLExpress และ ตัวเต็ม) เป็นคนละเครื่องกัน
User ที่ logon เข้า windows ของเครื่องที่เป็น web server จะต้องมี สิทธิใน database ต่างๆ ของเครื่องที่ลง SQLServer ด้วย
หลังจากลง SQLServer แล้วที่ Security section จะมี group โผล่ให้เห็นเป็น default เลยตามรูป
group ->
กรณีเครื่องที่เป็น web server กับ SQLServer คนละเครื่องกันต้องเพิ่ม user ด้วยดังรูป
ชื่อเครื่อง Server1 เป็น web server Logon เข้า windows ด้วย user Administrator
ชื่อเครื่อง PC1 เป็น SQLServer
user ->
Mix mode = ไม่จำเป็นต้องมี user ที่มีสิทธิเหมือนแบบ windows mode และสามารถสร้าง user เพื่อกำหนดสิทธิให้แต่ละ database ที่
สร้างมาใช้งานได้ ถ้าไม่สนใจตรงนี้ ก็จะมี default user ให้ใช้อยู่แล้ว user 'sa' แค่ตั้ง password ใหม่แค่นั้น
mix mode user ->
เรื่อง \SQLEXPRESS ต่อท้าย ในกรณีผม
คือผมลงแล้วที่บอกว่า ไม่มี \SQLEXPRESS ต่อท้าย เป็นแค่ชื่อเครื่องเลย สมมุติชื่อเครื่องตั้งว่า COMPUTER1
ตอนเข้า Microsoft SQL Server Management Studio
แล้วมันมีขึ้น Connect to server
ที่มันจะมีให้เลือก Authentication ระหว่าง Windows กับ SQL Server
ส่วน Server name มันขึ้นแค่ว่า COMPUTER1 ไม่มี \SQLEXPRESS ต่อท้าย
อย่างที่คุณ codeman บอกคือไม่ต้องมี \SQLEXPRESS ต่อท้ายก็ได้ หรือเพิ่มต่อท้ายเองก็ได้ อันนี้ผมลองเพิ่มต่อท้ายเองแล้วไม่สามารถ login ผ่านทาง Microsoft SQL Server Management Studio ได้ครับ
แล้วในกรณีผมคือ Web server กับ SQL server อยู่ที่เครื่องเดียวกัน
Data Source=.\\SQLExpress; ก็ใช้แค่นี้ตามที่คุณ codeman บอก แต่ทีนี้ ไม่สามารถใส่ \SQLEXPRESS ได้
แล้วจะต้องแก้ยังไงครับ เป็นData Source=.\COMPUTER1 รึเปล่า
แล้วเรื่อง mix mode นั้น คือว่า ตัว SQL SERVER ของเดิมใช้กับแค่ ASP.NET ลงโปรแกรมไว้แค่ Windows Authentication ไม่ได้ลงแบบ mix mode
คือปัจจุบันผมต้องการ เปลี่ยนเป็น mix mode เพื่อจะใช้ PHP ด้วย (เพราะ php เวลา code เชื่อมต่อเหมือนกับว่า มันต้องใช้ user ด้วย mssql_connect("localhost","sa","") ประมาณนี้)
แล้วถ้าผมเปลี่ยนเป็น mix mode นั้น ASP.NET ที่เชื่อมต่อแบบ Windows Authentication จะมีปัญหารึเปล่าครับ