我有一个要求,我需要通过打开主连接在azure SQL数据库中创建一个新数据库。因此,我需要检查该用户是否有权创建新数据库。对于传统 SQL,我向用户提供“dbcreator”卷并且
string query = "SELECT IS_SRVROLEMEMBER('dbcreator') IS_DBCREATOR";
使用上面的查询来检查用户是否有权创建新数据库。
现在我必须通过 Azure SQL 数据库实现同样的事情。那么我必须将什么卷分配给用户/服务器,以便我允许创建新的数据库。我需要使用什么查询来检查用户是否具有创建者权限。
要创建数据库,用户登录必须是以下之一 校长:
- 服务器级主体登录
- 本地 Azure SQL Server 的 Azure AD 管理员
- 作为 dbmanager 数据库角色成员的登录名
对于
dbmanager
角色成员资格,用户需要服务器级别登录、主数据库用户以及 dbmanager
数据库角色成员资格。
授予现有登录权限以在
master
数据库上下文中创建数据库的示例:
CREATE USER YourDbCreatorUser;
ALTER ROLE dbmanager ADD MEMBER YourDbCreatorUser;
检查当前用户的
dbmanager
数据库角色成员身份(在 master
数据库上下文中):
SELECT IS_MEMBER('dbmanager') IS_DBMANAGER;