Chciałem wypróbować funkcję użytkowników bazy danych zawartej w bazie danych Azure SQL Database 12, ale mam problem z uwierzytelnieniem, który wydaje mi się dziwny.
Utworzyłem bazę danych o nazwie Classifier
. Dodałem mój adres IP do reguł zapory, aby móc połączyć się z serwerem db Azure z SSMS na mojej stacji roboczej. Gdy udało mi się połączyć za pośrednictwem SSMS w celu administrowania, próbowałem dodać użytkownika z hasłem do bazy danych:
CREATE USER classifier WITH PASSWORD='thepassword'
Dodałem także tego użytkownika do ról pisarza i czytelnika:
exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'
Po tym jestem w stanie połączyć się z bazą danych przy użyciu tych poświadczeń z SSMS:
Ale tutaj wszystko idzie nie tak: wypróbowałem kilka różnych inkantacji ciągu połączenia i nie mogę się połączyć w aplikacji internetowej, nad którą pracuję. Nie działało w środowisku Azure, więc działam na localhost z parametrem połączenia z bazą danych Azure i po prostu się nie łączy. Oto ciąg połączenia, którego obecnie używam:
<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"/>
Próbowałem zresetować hasło użytkownika (przez SSMS), a następnie zaktualizować parametry połączenia; Sprawdziłem również dwukrotnie hasło, kopiując je bezpośrednio z tego ciągu połączenia i do okna dialogowego połączenia w SSMS, aby upewnić się, że nie mam tam literówki.
Włączyłem inspekcję na serwerze db Azure, mając nadzieję uzyskać szczegółowe informacje na temat przyczyny niepowodzenia, ale otrzymuję tylko:
I tu utknąłem. Większość tego, co udało mi się znaleźć za pomocą dokumentacji lub blogów, wskazuje, że należy spojrzeć na dzienniki programu SQL Server, aby zobaczyć, jaki jest rzeczywisty stan błędu, który wskazywałby węższy charakter awarii, ale ponieważ Mam do czynienia z platformą Azure, nie ma na to sposobu (o ile wiem).
Co może spowodować awarię aplikacji w przypadku powodzenia SSMS (i, nawiasem mówiąc, LinqPad i Visual Studio Server Explorer)?