Saya ingin mencoba fitur pengguna basis data yang terkandung di Azure SQL Database V12, tapi saya mengalami masalah otentikasi yang terasa aneh bagi saya.
Saya membuat basis data bernama Classifier
. Saya menambahkan IP saya ke aturan firewall sehingga saya bisa terhubung ke server Azure db dari SSMS di workstation saya. Setelah saya dapat terhubung melalui SSMS untuk administrasi, saya mencoba menambahkan pengguna dengan kata sandi ke database, seperti ini:
CREATE USER classifier WITH PASSWORD='thepassword'
Saya juga menambahkan pengguna ini ke peran penulis data dan pembaca:
exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'
Setelah ini, saya dapat terhubung ke database dengan kredensial ini dari SSMS:
Tapi di sinilah semuanya serba salah: Saya sudah mencoba beberapa mantra koneksi string yang berbeda dan sepertinya tidak bisa terhubung dalam aplikasi web yang sedang saya kerjakan. Itu tidak berfungsi di lingkungan Azure, jadi saya berjalan di localhost dengan string koneksi ke database Azure, dan itu tidak akan terhubung. Inilah string koneksi yang saya gunakan saat ini:
<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"/>
Saya sudah mencoba mengatur ulang kata sandi (melalui SSMS) untuk pengguna dan kemudian memperbarui string koneksi; Saya juga memeriksa ulang kata sandi dengan menyalinnya langsung dari string koneksi ini dan ke dialog connect di SSMS untuk memastikan saya tidak memiliki kesalahan ketik di sana.
Saya mengaktifkan audit di server Azure db dengan harapan mendapatkan beberapa detail mengapa gagal, tetapi yang saya dapatkan adalah ini:
Dan di sinilah aku terjebak. Sebagian besar dari apa yang saya dapat temukan melalui dokumentasi atau blog menunjukkan bahwa hal yang harus dilakukan adalah melihat log SQL Server untuk melihat apa status kesalahan sebenarnya yang akan menunjukkan secara lebih sempit sifat kegagalan, tetapi karena saya Saya berurusan dengan Azure tidak ada cara untuk melakukan itu (sejauh yang saya tahu).
Apa yang bisa menyebabkan aplikasi gagal di mana SSMS (dan LinqPad dan Visual Studio Server Explorer, kebetulan) berhasil?