Volevo provare la funzionalità degli utenti di database contenuti nel database SQL V12 di Azure, ma sto riscontrando un problema di autenticazione che mi sembra strano.
Ho creato un database chiamato Classifier
. Ho aggiunto il mio IP alle regole del firewall in modo da poter connettermi al server db di Azure da SSMS sulla mia workstation. Una volta che sono stato in grado di connettermi tramite SSMS per l'amministrazione, ho provato ad aggiungere un utente con una password al database, in questo modo:
CREATE USER classifier WITH PASSWORD='thepassword'
Ho anche aggiunto questo utente ai ruoli di scrittore e lettore di dati:
exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'
Successivamente, sono in grado di connettermi al database con queste credenziali da SSMS:
Ma è qui che le cose vanno male: ho provato diversi incantesimi di stringhe di connessione e non riesco a collegarmi in un'app Web su cui sto lavorando. Non ha funzionato nell'ambiente Azure, quindi sto eseguendo localhost con una stringa di connessione al database di Azure e semplicemente non si connetterà. Ecco la stringa di connessione che sto usando al momento:
<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"/>
Ho provato a ripristinare la password (tramite SSMS) per l'utente e quindi ad aggiornare la stringa di connessione; Ho anche ricontrollato la password copiandola direttamente da questa stringa di connessione e nella finestra di dialogo di connessione in SSMS per assicurarmi di non avere un refuso di qualche tipo lì.
Ho abilitato il controllo nel server db di Azure sperando di ottenere alcuni dettagli sul perché non funziona, ma tutto ciò che ottengo è questo:
Ed è qui che sono bloccato. La maggior parte di ciò che sono stato in grado di trovare tramite documentazione o blog indica che la cosa da fare è guardare i registri di SQL Server per vedere quale sia lo stato di errore reale che indicherebbe più strettamente la natura dell'errore, ma dal momento che Ho a che fare con Azure non c'è modo di farlo (per quanto ne so).
Cosa potrebbe causare il fallimento dell'applicazione in caso di successo di SSMS (e LinqPad e Visual Studio Server Explorer)?