无法将新用户添加到 Azure SQL 数据库

nea*_*lsu 3 t-sql sql-server azure-sql-database

尝试将新的 SQL Server 身份验证用户添加到 Azure SQL 数据库实例。正在使用下面的脚本。我以服务器管理员身份登录。

但该脚本在成员角色分配时失败。登录名和用户已创建,但我无法登录数据库服务器。

脚本:

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';
Run Code Online (Sandbox Code Playgroud)

但是上面的脚本失败并出现以下错误:

消息 15151,级别 16,状态 1,第 6 行 无法更改角色“db_datareader”,因为它不存在或您没有权限。

消息 15151,级别 16,状态 1,第 6 行 无法更改角色“db_datawriter”,因为它不存在或您没有权限。

nea*_*lsu 5

问题是尝试将UserRoles 添加到master数据库中。

所需要做的就是创建Login针对master,然后针对 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';
Run Code Online (Sandbox Code Playgroud)

注意:如果您想创建一个有权访问master数据库的用户,这个答案将无济于事。