【发布时间】:2015-11-27 09:15:19
【问题描述】:
如何向 Azure SQL 数据库中的用户授予系统管理员权限,或者如何向 Azure SQL 数据库中的用户授予相同级别的访问权限?
【问题讨论】:
标签: sql-server azure azure-sql-database
如何向 Azure SQL 数据库中的用户授予系统管理员权限,或者如何向 Azure SQL 数据库中的用户授予相同级别的访问权限?
【问题讨论】:
标签: sql-server azure azure-sql-database
使用天蓝色门户。应使用服务器级主体登录来授予对各个数据库的访问权限。
可以创建新用户并授予对一个或多个数据库的权限:
-- 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';
【讨论】:
您不能将 sysadmin 授予 Azure SQL 数据库[1] 中的登录名。
Azure 数据库中有两个特殊角色[2]:
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
[1]https://docs.microsoft.com/en-us/azure/azure-sql/database/logins-create-manage
[2]https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15#special-roles-for--and-azure-synapse
【讨论】:
据我分析,SQL azure 不存在物理系统。数据库保存在不同的文件存储中。所以没有必要特别赋予系统管理员访问权限/角色。
【讨论】: