用Command清理Azure SQL Database Firewall Rule

Edward Kuo
Apr 22 · 2 min read
Image for post
Image for post

使用Azure SQL Database時候,如果有開放從非Azure 內去連線到DB時候,基本上都會去防火牆設定的地方,設定你要連線進入的IP或是一組IP或是一組IP範圍。

Image for post
Image for post

不過,當這個DB是整個團隊開發就會有多人存取再加上如果處的位置都不同,就會有多個規範,另外,就是不使用時候,很多人也會忘記到這邊把規範給刪除,久而久之在防火牆規則中,就會殘留很多之前設定的足跡。一方面如果本身是在家用採用像是ADSL不具有固定IP方式設定,很可能某天其它人的IP就與上面規則會有相同,就可以登入資料庫了。另一方面,這些規則數量是有限制的(我不確定有多少筆限制),當超過限制時候,就會發生新增錯誤,讓你無法新增新的防火牆規則進去,無論是存Azure Portal或是從SSMS工具新增,都是會會發生錯誤的。

因此,當規則數量太多時候,要一筆一筆人工刪除也不容易,最簡單就是透過Az Cli去刪除這些規則,而本身有提供五種指令:

Image for post
Image for post

首先,我們就先登入用Azure Cli登入Azure,並選擇對的subscription。

由於,臨時建立的Rule,都會是剛好用ClientIPAddress開頭,所以,要找出防火牆規則名稱是開頭ClientIPAddress的進行刪除即可。所以,在上述的代碼中,就是列出所有該Azure SQL DB所有防火牆設定的規則,且是符合我們想要刪除條件的名稱。

每個規則的JSON格式如下:

因此,透過上述的程式碼就可以找到要刪除的防火牆規則名稱,然後,透過az sql server delete指令刪除,就可以很快速地清理掉這些規範了

EK.Technology Learn

Design,Thinking,Coding & have fun every thing

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store