Программно добавляем каждый IP-адрес:
Если вы хотите добавить ip-адрес в брандмауэр базы данных программным способом, вы можете запустить следующую хранимую процедуру в вашей базе данных Azure.
sp_set_database_firewall_Rule на MSDN
-- Create database-level firewall setting for only IP 0.0.0.4
EXECUTE sp_set_database_firewall_rule N'Example DB Setting 1', '0.0.0.4', '0.0.0.4';
- Использование командной строки:
Вы можете использовать SQLCMD.exe для выполнения хранимой процедуры sp_set_daabase_firewall_rule
String clientIPAddress = Request.UserHostAddress;
using(SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlAzureMaster"].ConnectionString)) {
sqlConnection.Open();
using(SqlCommand sqlCommand = new SqlCommand("sp_set_firewall_rule", sqlConnection)) {
sqlCommand.CommandType = System.Data.CommandType.StoredProcedure;
sqlCommand.Parameters.Add("@name", SqlDbType.NVarChar).Value = clientIPAddress;
sqlCommand.Parameters.Add("@start_ip_address", SqlDbType.VarChar).Value = clientIPAddress;
sqlCommand.Parameters.Add("@end_ip_address", SqlDbType.VarChar).Value = clientIPAddress;
sqlCommand.ExecuteNonQuery();
}
}
2. Обновление кеша после изменения правил брандмауэра
После того, как вы программно добавите правила брандмауэра, вы должны обновить кеш аутентификации, в котором хранятся логины, правила брандмауэра для базы данных.
Вам нужно вызвать команду ниже. DB CC FLUSTHAUTHCACHE на MSDN
DBCC FLUSHAUTHCACHE
Примечание: Добавление диапазона IP-адресов для офисной сети:
Если ваш клиент будет работая из офисной сети, вы можете получить диапазон IP-адресов для этой офисной сети и добавить их. Это позволит вам не добавлять IP-адрес каждый раз в базу данных. База данных поддерживает 128 IP-конфигураций одновременно. Убедитесь, что вы не выходите за пределы 128.