我有一个Azure应用程序,它使用不同服务器的不同数据库。这个数据库是独立的,我的应用程序的每个扇区只使用一个数据库。 我尝试制作一个IP过滤器。此过滤器必须标识请求者的IP,并允许访问每个数据库或不依赖此过滤器。这为我提供了一种允许访问A而不是B访问IP,访问B而不是A访问另一个IP,完全访问另一个不同IP的方法...使用Azure的安全性。 这可能吗?
谢谢,我等了回答!
PD:对不起我糟糕的英语!答案 0 :(得分:0)
假设您指的是SQL Azure托管数据库,您可以使用数据库级防火墙设置,这些设置记录在案here。
使用。创建数据库级防火墙规则 sp_set_database_firewall_rule存储过程。添加新防火墙 通过在中指定唯一名称来设置基于Internet的连接 存储的sp_set_database_firewall_rule的name参数 程序。使用指定该范围内所需的最低IP地址 start_ip_address参数和最高的所需IP地址 使用end_ip_address参数的范围。 name参数是 nvarchar数据类型以及start_ip_address和end_ip_address 参数是varchar数据类型。
同样,您可以通过Windows Azure启用连接尝试 使用sp_set_database_firewall_rule存储过程 参数start_ip_address和end_ip_address等于0.0.0.0。
答案 1 :(得分:0)
我相信你已经找到了一个解决方案,因为它已经有几个月的历史了,但只是在案例......
假设我正确理解,您有许多客户端与您的应用程序服务器进行通信,而应用程序服务器又会查询许多数据库服务器中的一个。 mellamokb建议的防火墙不是一个选项,因为客户端实际上没有访问数据库,因此需要在应用程序服务器上使用。
根据客户端的IP地址选择用于访问/ a数据库的连接字符串可能就是您在此处所需的内容。如果您还需要使用其本机安全性锁定数据库,则需要为每个客户端创建一个命名用户帐户。
或者,您可以调查Azure SQL数据库上的Federations,并使用客户端的IP地址或类似的标识符作为分发密钥。