Eu queria experimentar o recurso de usuários de banco de dados independente no Banco de Dados SQL do Azure V12, mas estou tendo um problema de autenticação que me parece estranho.
Criei um banco de dados chamado Classifier
. Adicionei meu IP às regras de firewall para poder me conectar ao servidor db do Azure do SSMS na minha estação de trabalho. Assim que consegui me conectar 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 este usuário às funções de gravador de dados e leitor:
exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'
Depois disso, consigo me conectar ao banco de dados com essas credenciais do SSMS:
Mas é aí que as coisas dão errado: eu tentei vários encantamentos de string de conexão diferentes e não consigo me conectar em um aplicativo da Web em que estou trabalhando. Não funcionou no ambiente do Azure, então estou executando em localhost com uma cadeia de conexão para o banco de dados do Azure e ele simplesmente não se conecta. Aqui está a string 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"/>
Já tentei redefinir a senha (via SSMS) do usuário e atualizar a string de conexão; Também verifiquei a senha copiando-a diretamente dessa cadeia de conexão e na caixa de diálogo de conexão no SSMS para garantir que não houvesse algum tipo de erro de digitação.
Habilitei a auditoria no servidor de banco de dados do Azure na esperança de obter alguns detalhes sobre o motivo da falha, mas tudo o que recebo é isso:
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 é examinar os logs do SQL Server para ver qual é o estado real do erro, o que indicaria mais precisamente a natureza da falha, mas como estou lidando com o Azure, não há como fazer isso (até onde eu sei).
O que pode fazer com que o aplicativo falhe onde o SSMS (e o LinqPad e o Visual Studio Server Explorer, incidentalmente) for bem-sucedido?