小编Ben*_*ins的帖子

应用程序中的 Azure SQL 数据库“用户登录失败”,但在 SSMS 中工作正常

我想在 Azure SQL 数据库 V12 上试用包含的数据库用户功能,但是我遇到了一个对我来说似乎很奇怪的身份验证问题。

我创建了一个名为Classifier. 我将我的 IP 添加到防火墙规则中,以便我可以从工作站上的 SSMS 连接到 Azure db 服务器。一旦我能够通过 SSMS 连接以进行管理,我尝试向数据库添加一个带有密码的用户,如下所示:

CREATE USER classifier WITH PASSWORD='thepassword'
Run Code Online (Sandbox Code Playgroud)

我还将此用户添加到数据写入者和读取者角色中:

exec sp_addrolemember 'db_datawriter', 'classifier'
exec sp_addrolemember 'db_datareader', 'classifier'
Run Code Online (Sandbox Code Playgroud)

在此之后,我可以使用来自 SSMS 的这些凭据连接到数据库:

在此处输入图片说明

但这就是事情出错的地方:我尝试了几种不同的连接字符串咒语,但似乎无法在我正在开发的网络应用程序中建立连接。它在 Azure 环境中不起作用,所以我在 localhost 上运行,并带有到 Azure 数据库的连接字符串,但它无法连接。这是我目前使用的连接字符串:

<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"/>
Run Code Online (Sandbox Code Playgroud)

我尝试为用户重置密码(通过 SSMS),然后更新连接字符串;我还通过将密码从该连接字符串中复制到 SSMS 中的连接对话框中来仔细检查密码,以确保那里没有某种类型的拼写错误。

我在 Azure db 服务器中启用了审计,希望得到一些关于它失败原因的详细信息,但我得到的只是:

错误 18456,级别 14,状态 1,Sever SQL Azure,第 1 行用户“分类器”登录失败

这就是我被困的地方。我通过文档或博客找到的大部分内容表明要做的是查看 SQL Server 日志以查看真正的错误状态是什么,这将更狭隘地表明失败的性质,但是由于我正在处理 Azure 没有办法做到这一点(据我所知)。

什么会导致应用程序在 SSMS(以及 LinqPad 和 Visual Studio Server Explorer,顺便说一句)成功的情况下失败?

authentication azure-sql-database connections

19
推荐指数
2
解决办法
4万
查看次数