2015年9月22日

[Azure]以Azure AD帳號登入Azure SQL資料庫

最新的Azure SQL資料庫已經可以與Azure AD帳號整合,透過Azure AD來驗證使用者的登入。再搭配Azure SQL資料庫的Auditing功能,基本上已經可以達到資料庫存取稽核的需求。

·         要設定Azure SQL資料庫的Azure AD驗證,首先我們需要到Portal上啟用並設定Admin

 

·         啟用後,接著我們需要透過工具已Azure AD身分連線到資料庫;連線使用的電腦必須要滿足以下的條件:

o   安裝了.Net Framework 4.6 - https://msdn.microsoft.com/library/5a4x27ek.aspx.

o   安裝了 Microsoft Active Directory Authentication Library for Microsoft SQL Server.

·         工具方面可以使用SQL 2016 Management Studio SQL Server Data Tools for Visual Studio 2015或是Visual Studio 2015;在這裡我使用SQL Server Data Tools for Visual Studio 2015

·         開啟工具後,選擇透過Azure AD Integration方式登入

·         連線到master資料庫,執行以下的指令在SQL Azure資料庫的上建立要登入資料庫的Azure AD使用者

o   CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;

·         或是可以建立整個Azure AD群組

o   CREATE USER [Group Name] FROM EXTERNAL PROVIDER;

·         接著,將剛剛建立的使用者加入相對應的Database Role,如此使用者才能夠存取該資料庫

o   EXEC sp_addrolemember 'dbmanager', 'abc@contoso.com';

·         在程式中使用以下的Connection String

string ConnectionString =

  @"Data Source=xxxxxx.database.windows.net; Authentication=Active Directory Password; UID=bob@contoso.onmicrosoft.com; PWD=PASSWORD";

SqlConnection conn = new SqlConnection(ConnectionString);

conn.Open();

·         如果執行時出現"Invalid object name"的錯誤,請在程式中的SQL語法加上schema name,例如:

o   Select * from [dbo].[myTable]

 

About Me