Eu queria experimentar o recurso de usuários de banco de dados contido no Banco de Dados SQL do Azure V12, mas estou tendo um problema de autenticação que me parece estranho.
Eu criei um banco de dados chamado Classifier
. Adicionei meu IP às regras de firewall para poder me conectar ao servidor db do Azure a partir do SSMS na minha estação de trabalho. Depois que consegui conectar-me via SSMS para administração, tentei adicionar um usuário com uma senha ao banco de dados, assim:
CREATE USER classifier WITH PASSWORD='thepassword'
Também adicionei esse usuário às funções de gravador e leitor de dados:
exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'
Depois disso, sou capaz de me conectar ao banco de dados com essas credenciais do SSMS:
Mas é aí que as coisas dão errado: tentei vários encantamentos de cadeias de conexão diferentes e parece que não consigo conectar-me a um aplicativo da Web em que estou trabalhando. Como não funcionou no ambiente do Azure, estou executando no host local com uma cadeia de conexão com o banco de dados do Azure e simplesmente não será conectado. Aqui está a cadeia de conexão que estou usando no 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"/>
Tentei redefinir a senha (via SSMS) para o usuário e atualizar a string de conexão; Também verifiquei a senha, copiando-a diretamente desta cadeia de conexão e para a caixa de diálogo de conexão no SSMS, para garantir que não houvesse um erro de digitação.
Habilitei a auditoria no servidor db do Azure na esperança de obter alguns detalhes sobre o motivo da falha, mas tudo o que recebo é o seguinte:
E é aqui que estou preso. A maior parte do que consegui encontrar por meio de documentação ou blogs indica que a coisa a fazer é olhar para os logs do SQL Server para ver qual é o verdadeiro estado do erro que indicaria mais estritamente a natureza da falha, mas desde que eu Como estou lidando com o Azure, não há como fazer isso (tanto quanto eu sei).
O que poderia causar a falha do aplicativo onde o SSMS (e o LinqPad e o Visual Studio Server Explorer, aliás) são bem-sucedidos?