如何在Azure SQL数据库中为用户授予sysadmin权限

13
如何在Azure SQL数据库中授予用户sysadmin权限或如何为Azure SQL数据库用户提供同级别的访问权限?

这里是关于如何实现你想要的操作的微软文档:https://learn.microsoft.com/zh-cn/azure/azure-sql/database/logins-create-manage?view=azuresql#create-additional-logins-and-users-having-administrative-permissions - Nick.McDermaid
3个回答

12

使用 Azure 门户。应该使用服务器级主体登录来授予对各个数据库的访问权限。

可以创建新用户并授予一个或多个数据库的权限:

    -- in master
create login [XXXX] with password = 'YYYYY'
create user [XXXX] from login [XXXX];

-- if you want the user to be able to create databases and logins
exec sp_addRoleMember 'dbmanager', 'XXXX';
exec sp_addRoleMember 'loginmanager', 'XXXX'

-- in each individual database, to grant dbo
create user [XXXX] from login [XXXX];
exec sp_addRoleMember 'db_owner', 'XXXX';
如果您刚刚创建了登录名和相应的用户,则必须添加适当的角色成员资格...
例如,
exec sp_addrolemember 'dbmanager', 'login1User';
exec sp_addrolemember 'loginmanager', 'login1User';

嗨,Nishant,我想为一个特定的数据库启用用户的完全权限。创建用户[XXXX] <希望是新用户>从登录[XXXX] <这里的登录是什么??>; 执行sp_addRoleMember 'db_owner','XXXX'; - Champ
这对你有帮助吗?https://dev59.com/bW025IYBdhLWcg3wW0oc - Nishant Singh
无法将用户添加到单个数据库中。您能否提供一些示例参数,应该在XXXXX的位置传递...我的实际错误是“错误#:2778 - 仅系统管理员可以为RAISERROR命令指定WITH LOG选项”。 - Champ
我编辑了答案,你可以试一下。此外,dbmanager 可以让你创建数据库,loginmanager 可以让你创建登录账户,但服务器级别的主要登录账户必须用于授予对个别数据库的访问权限。 - Nishant Singh
1
sp_addrolemember已被弃用。请改用ALTER ROLE [db_owner] ADD MEMBER [XXXX] - Henrik Høyer
显示剩余2条评论

2

在 Azure SQL 数据库中,您无法将 sysadmin 授权给登录名[1]。

Azure 数据库中有两个特殊角色[2]:

  • dbmanager
  • loginmanager

相反,在 master 数据库中有两个特殊的数据库角色。

USE master
CREATE LOGIN myadmin WITH PASSWORD = '<some password>' 
CREATE USER myadmin FOR LOGIN myadmin

ALTER ROLE dbmanager ADD MEMBER myadmin
ALTER ROLE loginmanager ADD MEMBER myadmin

对于服务器上的每个数据库

CREATE USER myadmin FROM LOGIN myadmin
ALTER ROLE [db_owner] ADD MEMBER myadmin

[1] https://learn.microsoft.com/zh-cn/azure/azure-sql/database/logins-create-manage
[2] https://learn.microsoft.com/zh-cn/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15#special-roles-for--and-azure-synapse


-4
据我的分析,SQL Azure 没有实际的物理系统存在。数据库保存在不同的文件存储中,因此没有必要特别设置系统来提供管理员访问/角色。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接