[Azure][SQL]如果不透過 SSMS,那該怎麼來設定給 SQL Server 的 SAS 呢 ?

當使用 SSMS 設定好之後 SAS 之後,如果要調整的話該怎麼來處理呢 ? 或者您是 Azure 的管理員,您要怎麼提供 SAS 的設定給 DBA 呢 ?

在前一篇的說明文章內「如何在 SQL Server 2016 上設定備份資料庫到 Azure 上面呢 ?」,我們說明了該如何利用 SSMS 來設定這些相關的認證,但在使用這個的前提下,是當您同時有資料庫和 Azure 管理權限的時候,是可以這樣來做的,但有時因為您可能只是管理 Azure 的人員,並沒有去接觸 SQL Server ,您要怎麼產生 SAS 的資訊給 DBA 來做設定呢 ? 或者是您已經有使用 SSMS 來做設定,但要怎麼知道,到底 SSMS 在我們的 Azure 上面做了甚麼樣的設定呢 ? 這些我們都只能透過 PowerShell 自己去寫 Script 來做處理嗎 ?

其實是不用的啦,微軟針對 Storage 有提供一個非常方便使用的工具「Azure Storage Explorer」,如果您有使用 Storage 相關功能的話,像是使用 Table 來做一些資料紀錄,利用 Queue 來存放驅動 Azure Function 的 Item ,亦或者是要管理 CDN 上的一些檔案,都可以很方面使用這樣的工具來做。他可以提供比 Azure Portal 更多的功能,但又不用像 PowerShell 一般要自己去寫 Script 來做管理,因此我自己也非常推薦使用這樣的一個工具。

回到正題,這次我們來說明如果透過 Storage Explorer 來做設定,這裡我建立一個新的 lab02 的容器來做範例,因此當我登入之後,可以在右邊的樹節點上做展開,找到我所建立的容器

然後在我們所要設定的容器上,按下滑鼠右鍵,在選單中選擇「Manage Access Policies...

接著按下「新增

在畫面中我們可以加入一組自己想要設定的 Policy ,這裡我先指定他的名稱是 MSSQLSERVER ,並且設定只能讀取、寫入和列表,但不允許刪除。設定完之後,我們就可以按下下方的 Save 去儲存這組設定。

建立好之後,回到原本的選單上,選擇「Get Shared Access Signature...

進入後,將 Access Policy 的部份,去挑選我們剛剛建立的那一組 Policy 後,按下下方的 「create」 按鈕

此時就會產生出 SAS 相關的資訊。這裡我們挑選中間的 Copy,將整個 URL 先複製出來

因此可能會得到類似下面的資訊:

https://demo2017.blob.core.windows.net/lab02?sv=2017-04-17&si=MSSQLSERVER&sr=c&sig=N3d2hSMONkTTcpGGiks49PaUCkbJyIRIbD2%2FfZEwwq8%3D

接著我們就可以將這組資訊提供給 DBA ,DBA 就可以使用下列的語法來建立認證

這裡我們將 URL 前面網址的部分,設定為認證的名稱,接著 Identity 設定為固定就是 「SHARED ACCESS SIGNATURE」,而 SECRET 就是網址的後半段。但在這裡要特別注意一下,網址與後面參數之間的 ? ,要記得不要加入,這樣就可以完成認證的設定。

當然如果您要用 GUI 的方式,也可以利用 SSMS 上選擇「安全性」→「認證」→「新增認證」來做設定。

這樣就可以很容易地透過 Storage Explorer 來完成相關設定,如果後續要調整相關的權限和時間限制,也都可以用同樣的方式,去修改相關的 Policy 設定值,就可以完成想要的調整了。