ฉันต้องการลองใช้คุณลักษณะผู้ใช้ฐานข้อมูลที่มีอยู่ใน Azure SQL Database V12 แต่ฉันประสบปัญหาในการตรวจสอบสิทธิ์ซึ่งดูเหมือนว่าแปลกสำหรับฉัน
Classifier
ฉันสร้างฐานข้อมูลที่เรียกว่า ฉันเพิ่ม IP ของฉันไปที่กฎไฟร์วอลล์เพื่อให้ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์ Azure db จาก SSMS บนเวิร์กสเตชันของฉัน เมื่อฉันสามารถเชื่อมต่อผ่าน SSMS เพื่อการดูแลระบบได้ฉันพยายามเพิ่มผู้ใช้ด้วยรหัสผ่านในฐานข้อมูลเช่นนี้
CREATE USER classifier WITH PASSWORD='thepassword'
ฉันยังเพิ่มผู้ใช้นี้ในบทบาทตัวเขียนข้อมูลและผู้อ่าน
exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'
หลังจากนี้ฉันสามารถเชื่อมต่อกับฐานข้อมูลด้วยข้อมูลรับรองเหล่านี้จาก SSMS:
แต่นี่คือสิ่งที่ผิดพลาด: ฉันได้ลองใช้สายอักขระการเชื่อมต่อที่แตกต่างกันหลายอย่างและดูเหมือนจะไม่สามารถเชื่อมต่อกับเว็บแอปที่ฉันกำลังทำงานอยู่ได้ มันใช้งานไม่ได้ในสภาพแวดล้อม Azure ดังนั้นฉันจึงใช้งาน localhost โดยมีสตริงการเชื่อมต่อไปยังฐานข้อมูล Azure และจะไม่เชื่อมต่อ นี่คือสตริงการเชื่อมต่อที่ฉันใช้ในขณะนี้:
<add name="Classifier" connectionString="Data Source=xxxxxxx.database.secure.windows.net;Initial Catalog=Classifier;User ID=classifier;Password=xxxxxxxxxxxxx;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient"/>
ฉันพยายามรีเซ็ตรหัสผ่าน (ผ่าน SSMS) สำหรับผู้ใช้แล้วอัปเดตสตริงการเชื่อมต่อ; ฉันยังตรวจสอบรหัสผ่านอีกครั้งโดยคัดลอกมันออกมาจากสตริงการเชื่อมต่อนี้และในกล่องโต้ตอบการเชื่อมต่อใน SSMS เพื่อให้แน่ใจว่าฉันไม่ได้พิมพ์ผิดบางชนิดที่นั่น
ฉันเปิดใช้งานการตรวจสอบบัญชีในเซิร์ฟเวอร์ Azure db โดยหวังว่าจะได้รับรายละเอียดบางอย่างเกี่ยวกับสาเหตุที่มันล้มเหลว แต่ทั้งหมดที่ฉันได้รับคือ:
และนี่คือที่ฉันติดอยู่ ที่สุดของสิ่งที่ฉันสามารถค้นหาโดยเอกสารหรือบล็อกระบุว่าสิ่งที่ต้องทำคือดูที่บันทึก SQL Server เพื่อดูสิ่งที่สถานะข้อผิดพลาดจริงซึ่งจะบ่งบอกลักษณะของความล้มเหลวแคบลง แต่เนื่องจากฉัน กำลังติดต่อกับ Azure ไม่มีทางทำเช่นนั้น (เท่าที่ฉันรู้)
สิ่งที่อาจทำให้แอปพลิเคชันล้มเหลวโดยที่ SSMS (และ LinqPad และ Visual Studio Server Explorer โดยบังเอิญ) สำเร็จ