Azure SQL执行CREATE DATABASE AS COPY OF复制数据库权限不足如何解决
解决Azure SQL数据库复制权限不足的问题
要成功执行CREATE DATABASE ... AS COPY OF语句,除了在master数据库中拥有dbmanager角色,还需要在源数据库中具备足够的权限,具体操作步骤如下:
确认master数据库中
dbuser已加入dbmanager角色(你已完成此操作):ALTER ROLE dbmanager ADD MEMBER dbuser;在源数据库db1中执行以下配置:
- 如果
dbuser尚未在db1中创建对应的数据库用户,先完成用户关联:CREATE USER dbuser FROM LOGIN dbuser; - 将该数据库用户添加到
db_owner角色(或直接授予CONTROL权限,二者权限等价):ALTER ROLE db_owner ADD MEMBER dbuser; -- 也可使用权限授予语句替代 -- GRANT CONTROL ON DATABASE::db1 TO dbuser;
- 如果
关键说明
dbmanager角色仅允许在master数据库中执行创建/删除数据库的基础操作,但复制操作需要读取源数据库的完整内容,因此必须在源库中拥有控制级权限。- 若之前添加
db_owner角色无效,大概率是因为dbuser登录名未与db1中的数据库用户关联——SQL登录名和数据库用户是分离的身份,必须显式绑定后,角色权限才能生效。 - 完成上述配置后,重新连接master数据库执行复制语句即可:
CREATE DATABASE db3 AS COPY OF db1 (SERVICE_OBJECTIVE = ELASTIC_POOL(name = MyPool));
内容的提问来源于stack exchange,提问作者mannaggia
相关产品推荐
相关产品推荐

