匯出 (0) 列印
全部展開

管理 Azure SQL Database 中的資料庫和登入

更新日期: 2014年2月

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

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

SQL Database 安全性管理的概觀

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

 

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

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

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

master 資料庫

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

securityadmin 固定伺服器角色

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

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

管理登入的命令

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

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

顯示所有登入的檢視

sys.syslogins (sys.sql_logins 代表 SQL Server 驗證登入)

sys.sql_logins

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

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

dbcreator 固定資料庫角色

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

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

建立資料庫的命令

CREATE DATABASE

CREATE DATABASE

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

卸除資料庫

DROP DATABASE

DROP DATABASE

如果使用者為 dbmanager 角色,則無論原先建立資料庫的使用者是哪位,使用者都會具有 DROP 任何資料庫的權限。

列出所有資料庫的檢視

sys.databases

(檢視)

sys.databases

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

伺服器層級管理和 Master 資料庫

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

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

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

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

管理登入

藉由連接 master 資料庫的方式管理具有伺服器層級主體登入的登入。您可以使用 CREATE LOGINALTER LOGINDROP LOGIN 陳述式。下列範例會建立名為 login1 的登入:

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

使用新登入

若要使用您建立的登入連線至 Microsoft Azure SQL Database,您必須先使用 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 的邏輯表示法)。

loginmanager 角色

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

dbmanager 角色

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

如何指派 SQL Database 伺服器層級角色

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

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

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

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

  4. 使用預存程序 sp_addrolememeber,將新的使用者加入至 dbmanager 資料庫角色、loginmanager 資料庫角色或這兩個角色。

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

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

將資料庫存取授與登入

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

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

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

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

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

  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;

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

身分識別和存取控制項 (Database Engine)

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

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

note附註
Transact-SQL 中與安全性相關的 Microsoft Azure SQL Database 陳述式之間可用的參數可能稍有不同。如需詳細資訊,請參閱<Azure SQL Database Transact-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; 

另請參閱

社群新增項目

新增
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2014 Microsoft