在 Amazon RDS 上创建 SQL Server 数据库的 .bak 备份时出现权限错误

Dan*_*Dan 3 sql-server amazon-web-services amazon-rds

我继承了一个在 AWS 上运行的网站。我想要做的是备份 SQL Server 数据库(位于 Amazon RDS 上),以便我可以在本地设置开发环境。我有 AWS 控制台的登录凭据,但我在这个环境中完全是新手,因此我正在尝试拼凑流程和术语。

我已阅读此处有关如何启用 SQL 数据库导入/导出的文档。本指南中有 3 个设置步骤:

首先,我们需要一个S3存储桶。我从控制台看到我们已经有一个名为“sqlbackups”的存储桶,因此看起来以前的开发人员已经完成了此过程。

其次,我们需要“一个 AWS Identity and Access Management (IAM) 角色来访问存储桶”。我通过从“服务”列表中转到“IAM”并从左侧导航中选择“角色”来检查控制台。我们似乎有一个名为“SQL_BackRestore_IAM”的 IAM 角色。我假设这就是我们所需要的,已经由之前的开发人员设置过了?

第三,我们需要“将 SQLSERVER_BACKUP_RESTORE 选项添加到数据库实例上的选项组中。”。我已转到 AWS 控制台 > RDS > 选项组,其中有一个名为“custom-option-group-for-sql-express-v11”的组,其中包含“SQLSERVER_BACKUP_RESTORE”作为选项。所以,这看起来又像是已经设置好了。

所以现在我相信我需要登录到实际的 SQL Server 并运行命令来调用存储过程来创建 .bak 备份。因此,我使用从网站 web.config 文件获得的凭据登录数据库,然后执行以下命令:

exec msdb.dbo.rds_backup_database 
@source_db_name='ExampleDBName',
@s3_arn_to_backup_to='arn:aws:s3:::sqlbackups/ExampleDBName.bak',
@type='FULL';
Run Code Online (Sandbox Code Playgroud)

但是,我现在收到错误:

The EXECUTE permission was denied on the object 'rds_backup_database', database 'msdb', schema 'dbo'

据推测,这与数据库登录没有执行备份的权限有关。不过,我没有获得任何类型的 sa 或 master 数据库登录信息,所以我现在陷入困境!

谁能建议我如何让这个备份命令发挥作用?

非常感谢。

IJB*_*IJB 5

我也有同样的问题。

我通过使用 RDS 主用户名登录并运行备份过程解决了这个问题。

您可以在 RDS 数据库实例配置选项卡上找到主用户名。

所以在AWS控制台中:

RDS、数据库、选择数据库、配置

如果您不知道主用户名密码,也可以通过单击数据库实例视图上的“修改”来查找。在“设置”下设置密码。