SQL Azure只支持SQL Server身份验证模式,并不支持Windows 身份验证模式(集成安全性)。每次连接SQL Azure的时候,你都必须要提供凭证。

在SQL Azure服务创建好以后 你拥有一个SQL Azure服务器,一个master数据库和一个服务器级别的主体登录名。这个服务器级别的主体登录名类似于SQL Server中的sa登录名。我们可以根据需要来创建额外的SQL Azure数据库和登录名。

借助Database Manager for SQL Azure SQL Server Management Studio 2008 R2你可以使用Transact-SQL 来管理这些额外的数据库用户和登录名。这两个工具会列出现有的与数据库相关的数据库用户和登录名。但是,目前并不提供图形化界面来创建数据库用户和登录名。

注意:当前版本的SQL Azure只支持一个账户管理员和一个服务管理员账户。

在本文中

·         master数据库

·         创建登录名

·         创建数据库用户

·         配置数据库用户权限

·         删除数据库用户和登录名

master数据库

一台SQL Azure服务器是逻辑意义上的一组数据库。跟某一台SQL Azure服务器相关联的数据库可能分散在微软数据中心内的不同的物理计算机上。你必须在master数据库上执行对所有数据库的服务器级管理。例如,master数据库记录着登录名,你必须连接到master数据路来创建和删除登录名。

创建登录名

登录名是服务器级别的对象,在所有的数据库中有相同的密码。为了执行CREATE LOGIN命令,必须用具有管理员权限的登录名来连接master数据库。可以使用象sa, Admin,root等一些常见的SQL Server登录名。详情请查看Managing Databases and Logins in SQL Azure

--创建一个叫login1的登录名

CREATE LOGIN login1 WITH password='pass@word1';

 

--列出现有的登录名。这条语句必须和CREATE LOGIN语句分开运行。

SELECT * FROM sys.sql_logins;

注意:  SQL Azure并不允许使用“USE”这个Transact-SQL语句。这意味着,因为CREATE LOGINCREATE USER句需要在不同的数据库中执行,你不能创建一个单独的脚本来执行这两条语句。

创建数据库用户

数据库用户是在每个数据库中创建的并与登录名相关联。在一个数据库中创建数据库用户,你必须要连接到那个数据库。大多数情况下,这个数据库不会是master数据库。

--创建一个叫user1的数据库用户

CREATE USER user1 FROM LOGIN login1;

配置数据库用户权限

创建数据库用户的过程并没有给予数据库用户在这个数据库上的权限。你需要为它们的访问授权。详情请查看数据库级别的角色

--通过分配db-datareader角色,赋予给user1数据库只读权限

EXEC sp_addrolemember 'db_datareader', 'user1';

 

删除数据库用户和登录名

SQL Server Management Studio 2008 R2可以用来删除数据库用户和登录名。做法是,在对象资源管理器中找到安全节点,右键点击数据库用户名或者登录名然后选择删除。你也可以使用DROP LOGINDROP USER语句来删除它们。

 

原文链接:http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-sql-authentication.aspx