Ошибка разрешений при создании .bak резервной копии базы данных SQL Server в Amazon RDS - PullRequest
0 голосов
/ 24 мая 2019

Я унаследовал сайт, работающий на AWS.Я хочу сделать резервную копию базы данных SQL Server (которая находится в Amazon RDS), чтобы я мог настроить среду разработки локально.У меня есть учетные данные для входа в консоль AWS, но я новичок в этой среде, поэтому пытаюсь собрать воедино процессы и терминологию.

Я прочитал документы здесь о том, как включить импорт / экспорт баз данных SQL.В этом руководстве есть 3 этапа настройки:

Во-первых, нам нужен контейнер S3.Из консоли я вижу, что у нас уже есть корзина с именем «sqlbackups», поэтому кажется, что предыдущий разработчик уже прошел этот процесс.

Во-вторых, нам нужна роль «Управление идентификацией и доступом AWS (IAM)».чтобы получить доступ к ведру ".Я проверил консоль, перейдя в «IAM» из списка «services» и выбрав «Roles» в навигационной панели слева.Похоже, у нас есть роль IAM под названием «SQL_BackRestore_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';

Однако теперь я получаю сообщение об ошибке:

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

Предположительно, это связано с тем, что вход в базу данных не имеет разрешений на выполнение резервного копирования.Мне не дали никакой возможности войти в базу данных sa или master, поэтому я застрял!

Может кто-нибудь подсказать, как заставить эту команду резервного копирования работать?

Большое спасибо.

1 Ответ

0 голосов
/ 24 мая 2019

Из документов

https://www.mssqltips.com/sqlservertip/5042/limitations-of-sql-server-native-backup-and-restore-in-amazon-rds/


У пользователя должно быть разрешение «Выполнить» для базы данных rds_backup_database в базе данных msdb.

USE master 
GO 
CREATE LOGIN rds_backup_operator WITH Password = 'somecomplexpassword', DEFAULT_DATABASE=master, 
   CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
GO 

USE msdb 
GO 
CREATE USER rds_backup_operator FROM LOGIN rds_backup_operator 
GO 
GRANT EXECUTE ON msdb.dbo.rds_backup_database TO rds_backup_operator 
GO 

Надеждаэто помогает !!!

...