練習 - 設定驗證
在本練習中,您將建立登入、使用者和系統管理員,以及授與 Microsoft Entra 使用者對資料庫的存取權,如同對 SQL Server 中一般使用者所做的一樣。
開啟 SQL Server Management Studio (SSMS),並連線到 Azure SQL Database 邏輯伺服器 (如果尚未連線)。
在設定並連線至資料庫之後,下一步可能是新增其他使用者並授與其存取權。 和 SQL Server 一樣,您也可以新增登入和使用者。
在 SSMS 中,以滑鼠右鍵按一下您的資料庫伺服器,選取 [新增查詢],並使用下列命令建立新的查詢。 選取 [執行] 以執行查詢:
-- Create a new SQL login and give them a password CREATE LOGIN ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
提示
針對 Azure SQL Database 中的大部分查詢,您必須以滑鼠右鍵按一下 Azure SQL Database 邏輯伺服器內的「資料庫」。 在 SQL Server 和 Azure SQL 受控執行個體中,您可以在伺服器層級查詢並使用
USE <DatabaseName>
,但在 Azure SQL Database 中,則必須直接查詢資料庫。 這是因為不支援USE
陳述式。 查詢 Azure SQL Database 中的資料庫有一些例外狀況,其中一個是登入。 您必須連線至虛擬master
資料庫,才能建立和改變登入。現在您已有伺服器層級的登入。 下一步是在
AdventureWorks
資料庫中建立使用者,並視需要為其提供讀取/寫入存取權。 以滑鼠右鍵按一下您的AdventureWorks
資料庫,然後選取 [新增查詢]。 使用下列命令建立新的查詢,然後選取 [執行]:-- Create a new SQL user from that login CREATE USER ApplicationUser FOR LOGIN ApplicationUser; -- Until you run the following two lines, ApplicationUser has no access to read or write data ALTER ROLE db_datareader ADD MEMBER ApplicationUser; ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
使用者只能登入 AdventureWorks 資料庫,而不是登入整個伺服器。
除非使用者必須能夠執行系統管理員工作,否則最佳做法是在資料庫層級建立非系統管理員帳戶。
在 SQL Server 中,您可能已熟悉自主資料庫使用者的概念。 這表示使用者只能存取特定資料庫且沒有伺服器的登入。 在 Azure SQL Database 中,您可以使用 SQL 驗證或 Microsoft Entra 驗證來建立自主資料庫使用者。 您必須位於想要建立使用者存取權的使用者資料庫內容中 (而不是在
master
中)。 在 SSMS 中,以滑鼠右鍵按一下您的資料庫,然後選取 [新增查詢]。 使用下列命令建立新的查詢,然後選取 [執行]:CREATE USER MyDatabaseUser WITH PASSWORD = 'C0mpl3xPa55word!'
選取物件總管左上方的 [連線],然後選取 [資料庫引擎]。 設定主頁面,以連線至 Azure SQL Database 邏輯伺服器。 針對 [登入] 輸入 MyDatabaseUser,並針對 [密碼] 輸入 C0mpl3xPa55word!。
您也必須設定資料庫名稱,方法是移至 [選項]>[其他連線參數],並於其中輸入
Initial Catalog=AdventureWorks
。 您必須手動執行此作業,因為 MyDatabaseUser 沒有掃描伺服器的存取權限,所以無法選取資料庫。選取 [連線],然後確認可存取資料庫。
進行清理步驟,以滑鼠右鍵按一下來自 MyDatabaseUser 的連線,然後選取 [中斷連線]。
向其他 Microsoft Entra 使用者授與存取權
您可以使用 CREATE USER [anna@contoso.com] FROM EXTERNAL PROVIDER
T-SQL 語法,作為自主資料庫使用者從 Microsoft Entra 帳戶建立登入。 自主資料庫使用者會對應至與資料庫相關聯 Microsoft Entra 目錄中的身分識別,而且在 master
資料庫中沒有登入。
透過在 Azure SQL Database 中引進 Microsoft Entra 伺服器登入,您可以在 SQL Database 的虛擬 master
資料庫中,從 Microsoft Entra 主體建立登入。 您可以從 Microsoft Entra 使用者、群組和服務主體建立 Microsoft Entra 登入。 如需詳細資訊,請參閱 Microsoft Entra 伺服器主體
此外,您只能使用 Azure 入口網站來建立管理員,且 Azure 角色型存取控制角色不會傳播至 Azure SQL Database 邏輯伺服器。 您必須使用 Transact-SQL (T-SQL) 來授與額外的伺服器和資料庫權限。