成员资格不适用于Azure SQL数据库级防火墙

阿里·利夫申

我们有一个Azure云应用程序,它将用户登录(会员)信息存储到Azure SQL数据库中。我们有此数据库的多个版本,一个用于生产,一个用于开发。我们希望我们的开发数据库对世界开放,而生产仅限于Azure云应用程序。虽然数据库向世界开放,但是所有数据库都运行良好。但是,在修改Azure SQL中的服务器级防火墙规则以限制允许的IP(不包括家用计算机的IP)并添加允许家用计算机的IP的数据库级规则之后,成员资格停止工作。现在,我可以使用Microsoft SQL Management Studio从家里访问数据库,甚至可以通过Visual-Studio Server Explorer(使用来自web.api的connectionString)连接到数据库。然而,成员资格不再允许从家到数据库的连接。Membership.GetUser()返回:

{System.Data.SqlClient.SqlException(0x80131904):无法打开登录请求的服务器“ XXXXXX”。IP地址为“ XXX.XXX.59.158”的客户端不允许访问服务器。若要启用访问,请使用Windows Azure管理门户或在主数据库上运行sp_set_firewall_rule为该IP地址或地址范围创建防火墙规则。此更改最多可能需要五分钟才能生效。用户“ visualbee”的登录失败。该会话的跟踪ID已分配为“ 23e9447b-f169-49ab-88df-305172323803”。需要帮助时,将此跟踪ID提供给客户支持。

在web.config中定义的数据库连接字符串为:

<add name="usersDB" connectionString="data source=XXXX.database.windows.net;Initial Catalog=XXX.YYY.UsersDatabase;User ID=uuu@gggg;Password=pppppp;Encrypt=true;Trusted_Connection=false;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

来自web.config的成员资格和RoleManager定义:

<membership defaultProvider="DefaultMembershipProvider" hashAlgorithmType="SHA1">
  <providers>
    <clear />        
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXbf3856ad364eXX" connectionStringName="usersDB" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="2147483647" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />        
  </providers>
</membership>

<roleManager enabled="false" defaultProvider="DefaultRoleProvider">
  <providers>
    <clear />
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />        
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXbf3856ad364eXX" connectionStringName="usersDB" applicationName="/" />        
  </providers>
</roleManager>

数据库级防火墙规则:(如您所见,它不排除任何人) 数据库级防火墙规则

阿里·利夫申

我终于通过实验找到了解决方案。我在“系统数据库”数据库中添加了数据库级规则:

exec sp_set_database_firewall_rule N'AllowAll','0.0.0.0','255.255.255.255'

现在,我可以使用成员资格连接到用户数据库。具有适当数据库级防火墙规则的其他数据库也可以公开访问。其余数据库返回“不允许IP地址为XXX的客户端访问服务器”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

microsoft azure 托管数据库和防火墙

来自分类Dev

Azure SQL Server 防火墙规则使用 PowerShell 添加多个 IP 地址以实现数据库连接

来自分类Dev

用于数字海洋托管数据库防火墙的Terraform

来自分类Dev

适用于Azure WebApp防火墙的Powershell脚本

来自分类Dev

如何通过Azure CLI将IP地址添加到Cosmosdb数据库防火墙

来自分类Dev

适用于 .NET list() 函数的 Azure 管理库 SDK 不适用于各种接口

来自分类Dev

插入不适用于SQLAlchemy数据库会话

来自分类Dev

插入不适用于SQLAlchemy数据库会话

来自分类Dev

CSV种子不适用于Rails数据库

来自分类Dev

导入数据库bacpac防火墙问题

来自分类Dev

架构级别的数据库防火墙规则

来自分类Dev

支持库不适用于aar

来自分类Dev

For循环不适用于json数据

来自分类Dev

使用JDBC连接到具有防火墙的SQL数据库

来自分类Dev

SQL选择不适用于哈希

来自分类Dev

sql查询不适用于order by

来自分类Dev

sql删除不适用于à

来自分类Dev

替换不适用于SQL表列

来自分类Dev

注册不适用于SQL

来自分类Dev

案例不适用于SQL

来自分类Dev

SQL 查询不适用于 RDS

来自分类Dev

SQL 不适用于 ResultSet

来自分类Dev

SQL语句不适用于C#数据库搜索

来自分类Dev

适用于Linux客户端的强大防火墙VPN产品/解决方案

来自分类Dev

适用于udev USB设备的类似于防火墙的软件?

来自分类Dev

为什么推送通知适用于在防火墙级别阻止的传入连接?

来自分类Dev

全文搜索不适用于SQL Azure上的XML列

来自分类Dev

防火墙损坏的centos azure vm

来自分类Dev

了解Azure云服务防火墙