在SQL Azure中复制数据库需要哪些权限

Joe*_*ams 5 azure-sql-database

我使用SQL Azure中非常有用的"CREATE AS COPY OF"命令编写了一个小应用程序来备份SQL Azure数据库.例如

CREATE DATABASE MyNewDB AS COPY OF MyOldDB
Run Code Online (Sandbox Code Playgroud)

我使用admin登录运行此命令(在创建服务器时首先登录). 我的问题:新登录执行上述命令需要的最小权限是多少?

到目前为止,这就是我所做的:

-- IN MASTER DB --
CREATE LOGIN DBCreator WITH PASSWORD = '?????????????'
CREATE USER DBCreator FROM LOGIN DBCreator;
EXEC sp_addrolemember 'dbmanager', 'DBCreator';

-- IN MyOldDB --
-- (I ran this stuff when the previous commands didn't do it) --
CREATE USER DBCreator FROM LOGIN DBCreator;
EXEC sp_addrolemember 'db_datareader', 'DBCreator';  -- 
Run Code Online (Sandbox Code Playgroud)

运行上面的CREATE DATABASE命令时的结果:

CREATE DATABASE permission denied in database 'MyOldDB'.
Run Code Online (Sandbox Code Playgroud)

dum*_*dad 1

我无法将 db_owner 角色添加到新登录,命令

EXEC sp_addrolemember 'db_owner', 'NewLogin'
Run Code Online (Sandbox Code Playgroud)

抛出错误

Cannot alter the role 'db_owner', because it does not exist or you do not have permission.

但使用 dbmanager 角色可以

EXEC sp_addrolemember 'dbmanager', 'NewLogin'
Run Code Online (Sandbox Code Playgroud)

在 Windows Azure SQL 数据库中管理数据库和登录一文中提供了有用的信息。