正在尝试向Azure SQL数据库实例添加新的SQL Server身份验证用户。正在使用下面的脚本。我以服务器管理员的身份登录。
但是脚本在分配成员角色时失败。登录名和用户已创建,但我无法登录到数据库服务器。
脚本:
use [master]
CREATE LOGIN test WITH password='somethingsecure';
GO
CREATE USER test FROM LOGIN test;
GO
EXEC sp_addrolemember 'db_datareader', 'test';
EXEC sp_addrolemember 'db_datawriter', 'test';
但是,上面的脚本失败,并出现以下错误:
消息15151,级别16,状态1,第6行无法更改角色"db_datarader",因为它不存在或您没有权限。
消息15151,级别16,状态1,第6行无法更改角色"db_datawriter",因为它不存在或您没有权限。
问题是尝试将User
和Role
添加到master
数据库。
所需要的只是针对master
创建Login
,然后针对Azure SQL数据库服务器中的实际数据库创建User
并分配Role
。
参见修改后的脚本:
use [master]
CREATE LOGIN test WITH password='somethingsecure';
GO
use [your-database]
CREATE USER test FROM LOGIN test;
GO
EXEC sp_addrolemember 'db_datareader', 'test';
EXEC sp_addrolemember 'db_datawriter', 'test';
注意:如果您想创建一个可以访问master
数据库的用户,这个答案将没有帮助。