微软官方文档:保护数据库 - Azure SQL Database | Microsoft Learn
管理数据库访问
管理数据库访问的方法是:将用户添加到数据库,或者允许用户使用安全的连接字符串进行访问。 连接字符串用于外部应用程序。 若要了解详细信息,请参阅管理登录名和用户帐户和 Microsoft Entra 身份验证。
若要添加用户,请选择数据库身份验证类型:
- SQL 身份验证,使用用户名和密码登录,仅适用于服务器中存在特定数据库的情况
- Microsoft Entra 身份验证,使用由 Microsoft Entra ID 管理的标识
一. SQL 身份验证
若要通过 SQL 身份验证来添加用户,请执行以下操作:
- 例如,使用 SQL Server Management Studio 连接到数据库。
- 在“对象资源管理器”中,右键单击数据库,然后选择“新建查询”。
- 在查询窗口中输入以下命令:
CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
- 在工具栏上选择“执行”,以便创建用户。
- 默认情况下,用户可连接到数据库,但没有读取或写入数据的权限。 若要授予这些权限,请在新的查询窗口中执行以下命令:
ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
Note: 在数据库级别创建非管理员帐户,除非这些帐户需要执行创建新用户之类的管理员任务。
二. Microsoft Entra 身份验证
由于Azure SQL 数据库不支持 Microsoft Entra 服务器主体(登录名),因此使用 Microsoft Entra 帐户创建的数据库用户将创建为包含的数据库用户。 即使存在同名的登录名,包含的数据库用户也不会与 master
数据库中的登录名相关联。 Microsoft Entra 标识可以是单独的用户,也可以是组。 有关详细信息,请参阅包含的数据库用户,使你的数据库可移植,并查看 Microsoft Entra 教程,了解如何使用 Microsoft Entra ID 进行身份验证。
Note:
不能使用 Azure 门户创建数据库用户(管理员除外)。 Microsoft Entra 角色不会传播到 SQL Server、数据库或数据仓库。 它们只能用于管理 Azure 资源,不会应用于数据库权限。
例如,“SQL Server 参与者”角色不会授予连接到数据库或数据仓库的访问权限。 必须使用 T-SQL 语句在数据库中授予此权限。
Important:
不支持在 T-SQL 的 CREATE LOGIN
和 CREATE USER
语句中将特殊字符(例如冒号 :
或与号 &
)用作用户名的一部分。
若要添加具有 Microsoft Entra 身份验证的用户,请执行以下操作:
使用至少具有 ALTER ANY USER 权限的 Microsoft Entra 帐户连接到 Azure 中的服务器。
在“对象资源管理器”中,右键单击数据库,并选择“新建查询” 。
在查询窗口中输入以下命令,并将
<Azure_AD_principal_name>
修改为 Microsoft Entra 用户的主体名称,或者修改为 Microsoft Entra 组的显示名称:CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
Note:
Microsoft Entra 用户在数据库元数据中标记为类型 E (EXTERNAL_USER)
,而组则标记为类型 X (EXTERNAL_GROUPS)
。 有关详细信息,请参阅 sys.database_principals。