本頁是否能提供幫助?
您對此內容的意見反應十分重要。 請告訴我們您的想法。
其他意見反應?
剩餘 1500 個字元
管理資料庫、登入和使用者

管理 Azure SQL Database 中的資料庫、登入和使用者

更新日期: 2015年7月

在 Microsoft Azure SQL Database 中,當您註冊服務時,佈建程序會建立 Azure SQL 資料庫 伺服器、名為 master 的資料庫,以及 Azure SQL 資料庫 伺服器的伺服器層級主體登入。該登入會與您內部部署上 SQL Server 執行個體的伺服器層級主體 sa 類似。

Azure SQL 資料庫 伺服器層級主體帳戶一律擁有管理所有伺服器層級和資料庫層級安全性的權限。本主題描述如何能夠使用伺服器層級主體和其他帳戶管理 SQL 資料庫 中的登入和資料庫。

Important重要事項
SQL Database V12 (了解) 可讓使用者利用自主資料庫使用者在資料庫上進行驗證。自主資料庫使用者不需要登入。這使得資料庫更具可攜性,但會使得伺服器層級實體較無法控制資料庫的存取。啟用包含的資料庫使用者會嚴重影響安全性。如需詳細資訊,請參閱自主資料庫使用者 - 賦予資料庫可攜性CREATE USER (Transact-SQL)自主資料庫

SQL 資料庫 中的安全性管理會與內部部署 SQL Server 執行個體的安全性管理類似。在資料庫層級管理安全性也幾乎一模一樣,只有可用的參數會有些差異。由於 SQL 資料庫 可以擴充至一部或多部實體電腦,因此 Azure SQL 資料庫 會針對伺服器層級管理使用不同的策略。下表摘要說明內部部署 SQL Server 與 Azure SQL 資料庫 中的安全性管理之間有何不同。

 

差異點 內部部署 SQL Server Microsoft Azure SQL Database

管理伺服器層級安全性的位置

SQL Server Management Studio 的 [物件總管] 中的 [安全性] 資料夾

master 資料庫和透過 Azure 入口網站

建立登入的伺服器層級安全性角色

securityadmin 固定伺服器角色

如需詳細資訊,請參閱<伺服器層級角色

master 資料庫中的 loginmanager 資料庫角色

管理登入的命令

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

(會有一些參數限制,而且您必須連接到master 資料庫) master 資料庫)

顯示所有登入的檢視

sys.server_principals

sys.sql_logins

(您必須連接至 master 資料庫)

建立資料庫的伺服器層級角色

dbcreator 固定資料庫角色

如需詳細資訊,請參閱<伺服器層級角色

master 資料庫中的 dbmanager 資料庫角色

建立資料庫的命令

CREATE DATABASE

CREATE DATABASE

(會有一些參數限制,而且您必須連接至 master 資料庫)

列出所有資料庫的檢視

sys.databases

(檢視)

sys.databases

(您必須連接至 master 資料庫)

您的 Azure SQL 資料庫 伺服器是定義資料庫群組的摘要。與您的 Azure SQL 資料庫 伺服器相關聯的資料庫可能位於 Microsoft 資料中心內的不同實體電腦上。使用名為 master 的單一資料庫針對所有資料庫執行伺服器層級管理。

master 資料庫會追蹤登入,以及哪些登入具有可建立資料庫或其他登入的權限。只要您 CREATEALTERDROP 登入或資料庫,就必須連線到 master 資料庫。master 資料庫也有 sys.sql_loginssys.databases 檢視,可讓您用來檢視登入和資料庫。

note附註
在資料庫之間切換時不支援 USE 命令。建立目標資料庫的直接連接。

您可以透過對內部部署 SQL 資料庫 執行個體所採用的方式,在 SQL Server 中管理使用者和物件的資料庫層級安全性。只有可供對應的命令使用的參數會有些差異。如需詳細資訊,請參閱Azure SQL Database 安全性方針和限制

以伺服器層級主體連接到資料庫,在資料庫中建立第一個自主資料庫使用者。使用 CREATE USERALTER USERDROP USER 陳述式。下列範例會建立名為 user1 的使用者。

CREATE USER user1 WITH password='<Strong_Password>';
note附註
在建立自主資料庫使用者時,您必須使用增強式密碼。如需詳細資訊,請參閱<增強式密碼>。

具有 ALTER ANY USER 權限的使用者皆可額外建立自主資料庫使用者。

Microsoft 建議搭配使用自主資料庫使用者與 SQL 資料庫。如需詳細資訊,請參閱自主資料庫使用者 - 賦予資料庫可攜性

使用傳統的登入和使用者模型時,是藉由以伺服器層級主體登入或屬於 loginmanager 角色成員的登入連接到 master 資料庫,來管理登入。您可以使用 CREATE LOGINALTER LOGINDROP LOGIN 陳述式。下列範例會建立名為 login1 的登入。

CREATE LOGIN login1 WITH password='<Strong_Password>';
note附註
建立登入時必須使用增強式密碼。如需詳細資訊,請參閱<增強式密碼>。

若要使用您建立的登入連線至 SQL 資料庫,您必須先使用 CREATE USER 陳述式將資料庫層級權限授與每一個登入。如需詳細資訊,請參閱將資料庫層級權限授與登入

由於部分工具會以不同的方式實作表格式資料流 (TDS),因此您必須使用 <login>@<server> 表示法將 Azure SQL 資料庫 伺服器名稱附加至連接字串中的登入。在上述情況中,以 @ 符號分隔登入和 Azure SQL 資料庫 伺服器名稱。例如,如果您的登入名為 login1,而您 Azure SQL 資料庫 伺服器的完整名稱是 servername.database.windows.net,則連接字串的使用者名稱參數應該是:login1@servername。這項限制會限制您可以選擇作為登入名稱的文字。如需詳細資訊,請參閱 CREATE LOGIN (Transact-SQL)

為了讓登入 (伺服器層級主體以外) 可以管理伺服器層級安全性,Microsoft Azure SQL Database 提供兩個安全性角色:loginmanager,可用於建立登入和 dbmanager 以供建立資料庫使用。只有 master 資料庫中的使用者可以加入至這些資料庫角色。

note附註
若要建立登入或資料庫,您必須連接到 master 資料庫 (這是 master 的邏輯表示法)。

就像內部部署 SQL Server 執行個體的 securityadmin 固定伺服器角色一樣,Microsoft Azure SQL Database中的 loginmanager 資料庫角色擁有建立登入的權限。只有伺服器層級主體登入 (透過佈建程序所建立) 或 loginmanager 資料庫角色的成員才能建立新的登入。

Azure SQL 資料庫 dbmanager 資料庫角色類似於內部部署 SQL Server 執行個體的 dbcreator 固定伺服器角色。只有伺服器層級主體登入 (透過佈建程序所建立) 或 dbmanager 資料庫角色的成員才能建立資料庫。使用者一旦成為 dbmanager 資料庫角色的成員之後,就可以使用 CREATE DATABASE 命令來建立資料庫,但是該命令必須在 master 資料庫中執行。如需詳細資訊,請參閱 CREATE DATABASE (Azure SQL Database)

若要建立可以建立資料庫或其他登入的登入和相關聯的使用者,請執行下列步驟:

  1. 使用伺服器層級主體登入 (透過佈建程序所建立) 的認證或 loginmanager 資料庫角色之現有成員的認證來連接到 master 資料庫。

  2. 使用 CREATE LOGIN 命令來建立登入。如需詳細資訊,請參閱 CREATE LOGIN (Transact-SQL)

  3. 使用 CREATE USER 命令,在 master 資料庫中為該登入建立新的使用者。如需詳細資訊,請參閱 CREATE USER (Transact-SQL)

  4. 使用 ALTER ROLE 陳述式,可將新使用者加入至 dbmanager 資料庫角色和 (或) loginmanager 資料庫角色。

下列程式碼範例示範如何建立登入 login1,以及名為 login1User 且能夠在連接到 master 資料庫時建立資料庫或其他登入的對應資料庫使用者:

CREATE LOGIN login1 WITH password = '<Strong_Password>';
CREATE USER login1User FROM LOGIN login1;
ALTER ROLE dbmanager ADD MEMBER [login1User];
ALTER ROLE loginmanager ADD MEMBER [login1User];
note附註
建立登入時必須使用增強式密碼。如需詳細資訊,請參閱<增強式密碼>。

所有登入都必須在 master 資料庫中建立。建立登入之後,您可以在另一個資料庫中為該登入建立使用者帳戶。SQL 資料庫 支援資料庫角色的方式與內部部署 SQL Server 執行個體採用的方式相同。

假設要在您尚未建立登入或資料庫的情況下,於另一個資料庫中建立使用者帳戶,請執行下列步驟:

  1. 連接到 master 資料庫 (使用擁有 loginmanagerdbmanager 角色的登入)。

  2. 使用 CREATE LOGIN 命令來建立新登入。如需詳細資訊,請參閱 CREATE LOGIN (Transact-SQL)。不支援 Windows 驗證。

  3. 使用 CREATE DATABASE 命令建立新資料庫。如需詳細資訊,請參閱 CREATE DATABASE (Azure SQL Database)

  4. 建立新資料庫的連接 (使用建立資料庫的登入)。

  5. 使用 CREATE USER 命令,在新資料庫上建立新使用者。如需詳細資訊,請參閱 CREATE USER (Transact-SQL)

下列程式碼範例示範如何名為 login1 的登入和名為 database1 的資料庫:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE DATABASE database1;
note附註
建立登入時必須使用增強式密碼。如需詳細資訊,請參閱<增強式密碼>。

下一個範例示範如何在 login1User 資料庫中建立對應至 database1 登入且名為 login1 的資料庫使用者:

-- Establish a new connection to the database1 database
CREATE USER login1User FROM LOGIN login1;

SQL 資料庫 中的這個資料庫層級權限模型與內部部署 SQL Server 執行個體相同。如需詳細資訊,請參閱《SQL Server 線上叢書》參考中的下列主題。

管理登入、使用者與結構描述的使用說明主題

第 2 課:設定資料庫物件上的權限

note附註
Transact-SQL 中與安全性相關的 SQL 資料庫 陳述式之間可用的參數可能稍有不同。如需詳細資訊,請參閱《線上叢書》中特定陳述式的語法。

若要檢視 Azure SQL 資料庫 伺服器上的登入和資料庫,請分別使用 master 資料庫的 sys.sql_loginssys.databases 檢視。下列範例示範如何顯示包含 Azure SQL 資料庫 伺服器上所有登入和資料庫的清單。

-- first, connect to the master database
SELECT * FROM sys.sql_logins;
SELECT * FROM sys.databases; 

另請參閱

顯示:
© 2015 Microsoft