【问题标题】:How can I allow unknown users to access my SQL (Azure) DB?如何允许未知用户访问我的 SQL (Azure) DB?
【发布时间】:2018-05-21 16:30:46
【问题描述】:

显然,必须明确指定(白名单)允许访问 SQL Azure DB 的 IP 地址。不过,我希望有 N-gazillion* 用户访问这些表以获取特定于他们的数据。

  • 自大/自大妄想

这些是否需要首先向我提供他们的 IP 地址,以便我可以将其添加为有效条目,或者是否有编程方式或其他解决方法?

【问题讨论】:

    标签: azure azure-sql-database


    【解决方案1】:

    建议让某种中间件访问数据库,而不是直接访问您的客户端。

    但是,如果您希望任何 IP 都能够连接到数据库,只需将此条目添加到防火墙列表中:

    Azure 门户 -> 数据库 -> 服务器 -> 配置并添加以下规则:

    【讨论】:

    • 很好的答案(谢谢!!),但令人惊奇的是,像 Azure 这样现代、美观、用户友好的网站,他们仍然要求您输入这些最小和最大 IP 地址,而不是给出一个简单的“允许任何 IP 地址”复选框。
    • (几个月后)这很奇怪。我在我的 Azure 数据库上设置了这个“所有访问”IP 范围,但是 SQL Server Management Studio(和我的 web 应用程序)拒绝连接,报告说我的“IP 地址不允许访问服务器”。
    • 就我而言,我必须使用1.1.1.1 到255.255.255.255。
    • “微软。这一切都解释了”——正是因为如此荒谬的判断,人们才真正怀念对 cme​​ts 投反对票。
    【解决方案2】:

    您的用户将如何访问数据库,通过 Web 应用程序(前端)或直接(我假设您不会让用户直接访问您的数据库?),如果它通过 Web 应用程序(表示层)然后您需要做的就是授予对表示层/服务层的这个 IP 地址的访问权限(如果托管在 Azure 中,它就在它旁边)。

    SQL DB Azure 有两种类型的访问限制(更多信息在这里)“Windows Azure SQL Database Firewall”

    • 服务器级防火墙规则:
    • 数据库级防火墙规则

    您可以打开所有 IP 地址 0.0.0.0 - 255.255.255.255(不是很安全),或者根据上述数据库防火墙规则提出更细粒度的策略。

    【讨论】:

    • 访问来自 Windows 8 / Store 应用程序;所以每个用户都将从他们自己的 IP 地址访问。
    • 您总是可以通过服务层(IMO 将是最好的架构,个人不会让 Win8 应用程序直接访问数据库,服务层介于两者之间)Win8 -> WCF/Web。 API-> SQL 数据库
    • @user728584 我找到了服务器级文档 (msdn.microsoft.com/en-us/library/windowsazure/dn505712.aspx),但我没有看到配置特定端口的方法。有办法吗?
    【解决方案3】:

    唯一的方法是通过 SQL 查询。 Azure 仅显示仅在门户上可见的防火墙服务器规则,但在数据库级别上,唯一的方法是通过 SQL。

    -- Enable Allconnections.  
    EXECUTE sp_set_database_firewall_rule N'Allow All', '0.0.0.0', '255.255.255.255';  
    

    【讨论】:

      【解决方案4】:
      Login to azure Portal
      
          select your database subscription
      
              click on Tools
      
                      Now there is option 'Open in VisualStudio' (click on it)
      
                          You can see "Configure Firewall" click on it.
      
              Add you new IP.
      
      Done :)
      

      【讨论】:

        【解决方案5】:

        如果您让他们直接与您的数据库对话(例如通过 SSMS),您需要输入他们的 IP(或者您可以将整个范围列入白名单)。通常他们会通过您自己的 API 使用您的数据库,因此不需要将他们的 IP 地址列入白名单。

        【讨论】:

        • “通过[我的]自己的API使用[我的]数据库”是什么意思?我希望客户端调用连接数据库并插入记录的方法。
        • 哦,没关系,我刚刚在下面阅读了您的其他评论。我所说的“您自己的 API”是指托管在您的一台服务器上的服务,但我看到客户端从他们自己的 PC 上调用数据库。请记住,从外部来源调用数据库通常是一个非常糟糕的主意:每个客户端都需要知道您的数据库的密码(可以进行反向工程),如果它发生更改,您将不得不更新所有客户。通常最好创建一个 REST API 或类似的东西来执行数据库交互,然后从您的客户端调用它。
        猜你喜欢
        • 2019-12-29
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 2018-08-25
        • 1970-01-01
        相关资源
        最近更新 更多