警告期限切れください: [OK]を、ので、これは必要ではないかもしれませんが、私の標準的なセキュリティの考え方は、可能な限りハードとしてのものを作る、その後、必要に応じて、最大容易にするためです。Azureのファイアウォールルールが自動的に
現在、私はAzure(SQL Serverとモバイルサービス)に基づいたソフトウェアシステムの唯一の開発者です。
システム全体がAzure Mobile Service APIを使用してSQL Serverデータベースにアクセスするように設計されていますが、SSMSを使用して開発およびテスト中にデータベースを管理しています。これを可能にするためには、アクセス。このプロジェクトが拡大する場合(今後数か月以内に見える)、私は他のDB管理者/開発者に同じリソースの一部にアクセスする必要があります。それは問題ありませんが、私たちが住宅にするデータの機密性を考えると、その日の終わりにAzure SQL Serverのファイアウォールルールを自動的に無効にしたいと考えています。私はこれが毎営業日の始めに再創造を必要とすることを認識しています。 私はこれで大丈夫です。
- T-SQL(
sp_delete_firewall_rule
) - RESTのAPI(
https://management.core...
からDELETE
):私は何を読んでから、、プログラムでのAzure SQL Serverのファイアウォールルールを管理するための3種類の方法があるように見えます
- AzureのPowerShellの(
Remove-AzureSqlDatabaseServerFirewallRule
)
私は実際にそれが行わ取得する方法を気にしないが、私は」既にモバイルサービススケジューラジョブを使用してパスワードリセットトークンを期限切れにしています(現在のタスクとはまったく関係ありません)。
ここがその試みであった:-ひどく、驚くべきことではない成果で
function ClearSqlServerFirewalls() {
var sql = 'Exec sp_delete_firewall_rule ?';
mssql.query(sql, ['name'], {
success: function (results) {
console.log(results);
}
});
}
、私は次のエラーを得た:
User must be in the master database.
[OK]を、それはこれがあることを考えると、良い意味になりますので、システム全体のエフェクトで、データベース固有のエフェクトではありません。 Azureは明らかに各データベースの特定のSQLユーザーを作成し、そのユーザーを通じてすべてのモバイルサービスコードを実行します。そのユーザーはデータベース全体にアクセスすることができないため、ダイスは使用できません。
ここで、この上の私の現在の考えがあるので、:
- SQL Agentが明らかにSQL Azureのために存在していないので、SQL Server内からT-SQLスクリプトを自動化することはアウトであるように思われます。
- 私は、Azure自身からREST APIコールを自動化する方法をまだ知りません。
- 私はAzureのPowershellに精通していません。
私は何をしたいのですか? Azureユーザーにmaster
データベースへのアクセスを許可することは、悪い解決策のように思えます。
はい、私はこれが過度のように思えるかもしれませんが、私が正しい資格情報を持っていれば、どこでもIPルールを追加できます。私は働いている昼食の上にいて、アクセスする必要があるとします。私はルールを追加して仕事に就きます。しかし、私はそのルールを忘れていると言えば、潜在的には同じネットワークに乗っている人に公開される招待状としてそこに座っている可能性があります。私はこれが少しであることを認識していますが、ファイアウォールルールには組み込みの有効期限が付いてくることも論理的です。何か不足していますか?