การเชื่อมต่อฐานข้อมูลได้พัฒนาไปสู่ลักษณะมาตรฐานของการพัฒนาแอปพลิเคชัน ขณะนี้สตริงการเชื่อมต่อฐานข้อมูลกลายเป็นมาตรฐานที่ต้องมีสำหรับทุกโปรเจ็กต์ ฉันมักจะพบว่าตัวเองกำลังคัดลอกสตริงการเชื่อมต่อจากแอปพลิเคชันอื่นหรือทำการค้นหาเพื่อค้นหาไวยากรณ์ที่ฉันต้องการ โดยเฉพาะอย่างยิ่งเมื่อทำงานร่วมกับ SQL Server ซึ่งมีตัวเลือกสตริงการเชื่อมต่อมากมาย ตอนนี้เรามาดูแง่มุมต่างๆ ของสตริงการเชื่อมต่อกัน
สตริงการเชื่อมต่อ
ในระหว่างการสร้างอินสแตนซ์หรือการสร้างวัตถุ สตริงการเชื่อมต่อฐานข้อมูลจะถูกส่งผ่านไปยังวัตถุที่จำเป็นผ่านคุณสมบัติหรือวิธีการ รูปแบบของสตริงการเชื่อมต่อเป็นรายการคู่พารามิเตอร์คีย์/ค่าที่คั่นด้วยเครื่องหมายอัฒภาค รายการ A มีตัวอย่างใน C# ที่แสดงวิธีเชื่อมต่อกับ SQL Server โดยการสร้างวัตถุ SqlConnection (สตริงการเชื่อมต่อจริงถูกกำหนดผ่านคุณสมบัติ ConnectionString ของวัตถุ) สิ่งที่รวมอยู่ใน Listing B คือเวอร์ชันของ VB.NET
รายการ ก
string cString = "แหล่งข้อมูล=เซิร์ฟเวอร์;แค็ตตาล็อกเริ่มต้น=db;รหัสผู้ใช้=ทดสอบ;รหัสผ่าน=ทดสอบ;";
SqlConnectionconn = SqlConnection ใหม่ ();
conn.ConnectionString = cString;
conn.เปิด();
รายการบี
Dim cString เป็นสตริง
cString = "แหล่งข้อมูล=เซิร์ฟเวอร์;แค็ตตาล็อกเริ่มต้น=db;รหัสผู้ใช้=ทดสอบ;รหัสผ่าน=ทดสอบ;"
Dim conn As SqlConnection = New SqlConnection()
conn.ConnectionString = cString
con.เปิด()
สตริงการเชื่อมต่อจะระบุเซิร์ฟเวอร์ฐานข้อมูลและฐานข้อมูล รวมถึงชื่อผู้ใช้และรหัสผ่านที่จำเป็นในการเข้าถึงฐานข้อมูล แม้ว่ารูปแบบนี้ไม่เหมาะสำหรับการโต้ตอบกับฐานข้อมูลทั้งหมด แต่ก็มีตัวเลือกมากมายให้เลือก ซึ่งหลายตัวเลือกก็มีคำพ้องความหมาย
นอกจากองค์ประกอบแหล่งข้อมูล แค็ตตาล็อกเริ่มต้น รหัสผู้ใช้ และรหัสผ่านแล้ว ยังมีตัวเลือกต่อไปนี้ให้เลือกอีกด้วย:
ชื่อแอปพลิเคชัน: ชื่อของแอปพลิเคชัน หากไม่ได้ระบุ ค่าจะเป็น .NET SqlClient Data Provider
AttachDBFilename/extensed properties/Initial File Name: ชื่อของไฟล์หลักที่สามารถเชื่อมต่อกับฐานข้อมูล รวมถึงชื่อพาธแบบเต็ม ต้องระบุชื่อฐานข้อมูลด้วยฐานข้อมูลคำสำคัญ
หมดเวลาการเชื่อมต่อ/หมดเวลาการเชื่อมต่อ: ระยะเวลา (เป็นวินาที) ที่การเชื่อมต่อกับเซิร์ฟเวอร์รอก่อนที่จะยุติ ค่าเริ่มต้นคือ 15
อายุการใช้งานการเชื่อมต่อ: เมื่อการเชื่อมต่อถูกส่งกลับไปยังพูลการเชื่อมต่อ เวลาในการสร้างจะถูกเปรียบเทียบกับเวลาปัจจุบัน หากช่วงเวลานี้เกินระยะเวลาที่ใช้งานได้ของการเชื่อมต่อ การเชื่อมต่อจะถูกยกเลิก ค่าเริ่มต้นคือ 0
รีเซ็ตการเชื่อมต่อ: ระบุว่าการเชื่อมต่อถูกรีเซ็ตเมื่อถูกลบออกจากพูลการเชื่อมต่อหรือไม่ เท็จที่ถูกต้องช่วยลดความจำเป็นในการเดินทางไปกลับเซิร์ฟเวอร์เพิ่มเติมเมื่อได้รับการเชื่อมต่อ และค่าเริ่มต้นจะเป็นจริง
ภาษาปัจจุบัน: ชื่อของเรกคอร์ดภาษา SQL Server
แหล่งข้อมูล/เซิร์ฟเวอร์/ที่อยู่/Addr/ที่อยู่เครือข่าย: ชื่อหรือที่อยู่เครือข่ายของอินสแตนซ์ SQL Server
เข้ารหัส (การเข้ารหัส): เมื่อค่าเป็นจริง SQL Server จะใช้การเข้ารหัส SSL สำหรับข้อมูลทั้งหมดที่ถ่ายโอนระหว่างไคลเอนต์และเซิร์ฟเวอร์ หากเซิร์ฟเวอร์มีการติดตั้งใบรับรองที่ได้รับอนุญาต ค่าที่ยอมรับคือ จริง เท็จ ใช่ และไม่ใช่
Enlist (การลงทะเบียน): ระบุว่าโปรแกรมพูลการเชื่อมต่อจะลงทะเบียนการเชื่อมต่อโดยอัตโนมัติในบริบทธุรกรรมปัจจุบันของเธรดการสร้างหรือไม่
ฐานข้อมูล/แค็ตตาล็อกเริ่มต้น: ชื่อของฐานข้อมูล
ความปลอดภัยแบบรวม/การเชื่อมต่อที่เชื่อถือได้: ระบุว่ามีการใช้การรับรองความถูกต้องของ Windows เพื่อเชื่อมต่อกับฐานข้อมูลหรือไม่ สามารถตั้งค่าเป็นจริง เท็จ หรือเทียบเท่ากับ sspi ของจริงได้
ขนาดพูลสูงสุด (ความจุสูงสุดของพูลการเชื่อมต่อ): จำนวนการเชื่อมต่อสูงสุดที่อนุญาตโดยพูลการเชื่อมต่อ ค่าเริ่มต้นคือ 100
ขนาดพูลขั้นต่ำ (ความจุขั้นต่ำของพูลการเชื่อมต่อ): จำนวนการเชื่อมต่อขั้นต่ำที่อนุญาตโดยพูลการเชื่อมต่อ และค่าเริ่มต้นคือ 0
ไลบรารีเครือข่าย/เน็ต: ไลบรารีเครือข่ายที่ใช้เพื่อสร้างการเชื่อมต่อกับอินสแตนซ์ SQL Server ค่าที่รองรับ ได้แก่ dbnmpntw (Named Pipes), dbmsrpcn (Multiprotocol/RPC), dbmsvinn (Banyan Vines), dbmsspxn (IPX/SPX) และ dbmssocn (TCP/IP) ต้องติดตั้งไลบรารีลิงก์แบบไดนามิกของโปรโตคอลสำหรับการเชื่อมต่อที่เหมาะสม โดยค่าเริ่มต้นคือ TCP/IP
ขนาดแพ็คเก็ต: ขนาดของแพ็คเก็ตเครือข่ายที่ใช้ในการสื่อสารกับฐานข้อมูล ค่าเริ่มต้นคือ 8192
รหัสผ่าน/รหัสผ่าน: รหัสผ่านที่สอดคล้องกับชื่อบัญชี
ข้อมูลความปลอดภัยคงอยู่: ใช้เพื่อระบุว่าข้อมูลความปลอดภัยพร้อมใช้งานหรือไม่เมื่อสร้างการเชื่อมต่อแล้ว หากค่าเป็นจริง ข้อมูลด้านความปลอดภัย เช่น ชื่อผู้ใช้และรหัสผ่านจะพร้อมใช้งาน แต่หากค่าเป็นเท็จ จะไม่มีข้อมูลดังกล่าว การรีเซ็ตสตริงการเชื่อมต่อจะกำหนดค่าสตริงการเชื่อมต่อทั้งหมดใหม่ รวมถึงรหัสผ่านด้วย ค่าเริ่มต้นเป็นเท็จ
การรวมกลุ่ม: กำหนดว่าจะใช้การรวมการเชื่อมต่อหรือไม่ หากเป็นจริง การเชื่อมต่อจะได้รับจากกลุ่มการเชื่อมต่อที่เหมาะสม หรือหากจำเป็น การเชื่อมต่อจะถูกสร้างขึ้นและเพิ่มลงในกลุ่มการเชื่อมต่อที่เหมาะสม ค่าเริ่มต้นของมันเป็นจริง
User ID: ชื่อบัญชีที่ใช้ในการล็อกอินเข้าสู่ฐานข้อมูล
ID เวิร์กสเตชัน: ชื่อของเวิร์กสเตชันที่เชื่อมต่อกับ SQL Server ค่าเริ่มต้นคือชื่อของคอมพิวเตอร์ในระบบ
สตริงการเชื่อมต่อต่อไปนี้จะสร้างการเชื่อมต่อกับฐานข้อมูล Northwind บนเซิร์ฟเวอร์ TestDev1 โดยใช้การเชื่อมต่อที่เชื่อถือได้และข้อมูลประจำตัวการเข้าสู่ระบบที่ระบุ (มีความปลอดภัยน้อยกว่าการปล่อยให้รหัสผ่านผู้ดูแลระบบว่าง): Server=TestDev1;Database=Northwind;User ID=sa ;
รหัสผ่าน=;Trusted_Connection=จริง;
สตริงการเชื่อมต่อถัดไปใช้ TCIP/IP และที่อยู่ IP เฉพาะ:
แหล่งข้อมูล=192.162.1.100,1433;ไลบรารีเครือข่าย=DBMSSOCN;
แค็ตตาล็อกเริ่มต้น=Northwind;User ID=sa;Password=;
ตัวเลือกที่ใช้สามารถรวมไว้ในสตริงการเชื่อมต่อได้อย่างง่ายดาย แต่ขึ้นอยู่กับแอปพลิเคชันและข้อกำหนดของคุณอีกครั้ง เป็นการดีที่จะทราบว่ามีอะไรบ้างเพื่อให้คุณสามารถใช้งานได้อย่างเหมาะสม
ใช้ ADO.NET 2.0
ADO.NET 2.0 แนะนำตัวสร้างสตริงการเชื่อมต่อใหม่สำหรับผู้ให้บริการข้อมูล .NET Framework แต่ละราย คำสำคัญจะแสดงเป็นคุณลักษณะ ซึ่งช่วยให้ไวยากรณ์สตริงการเชื่อมต่อมีผลก่อนที่จะส่งไปยังแหล่งข้อมูล นอกจากนี้ยังมีคลาสใหม่ๆ ที่ทำให้ง่ายต่อการจัดเก็บและเรียกค้นสตริงการเชื่อมต่อในไฟล์คอนฟิกูเรชัน และเพื่อเข้ารหัสสตริงในลักษณะที่ได้รับการป้องกัน