Azure SQL数据库添加Basic认证只读用户时设置db_datareader角色报错
Azure SQL添加只读用户报错的排查与解决
针对你遇到的Cannot alter the role 'db_datareader', because it does not exist or you do not have permission报错,常见原因及解决方法如下:
数据库上下文错误
db_datareader是用户数据库级别的内置角色,不属于master系统库。如果你的授权语句是在master库中执行的,必然会触发该报错。
解决:先切换到目标用户对应的业务数据库,再执行授权操作,示例语句:USE [你的目标数据库名]; GO ALTER ROLE db_datareader ADD MEMBER [只读用户名]; GODbAdmin实际权限不足
即便登录名为DbAdmin,也可能缺少目标数据库的角色管理权限:- 检查DbAdmin是否是目标数据库的
db_owner角色成员,或是否被授予ALTER ANY ROLE权限; - 如果DbAdmin仅在master库拥有权限,需先在目标数据库中为其创建用户并赋予足够权限,再执行授权:
USE [你的目标数据库名]; GO CREATE USER [DbAdmin] FOR LOGIN [DbAdmin]; GO ALTER ROLE db_owner ADD MEMBER [DbAdmin]; GO- 检查DbAdmin是否是目标数据库的
确认数据库用户已正确创建
确保你已在目标数据库中创建了对应的数据库用户(而非仅在master库创建登录名),否则添加角色成员时也可能间接触发权限类报错。
内容的提问来源于stack exchange,提问作者RobbeVL
相关产品推荐
相关产品推荐

