Я пытаюсь создать хранимую процедуру, которая создает снимок дБ для непривилегированного пользователя.
Идея состоит в том, чтобы предоставить обычному пользователю способ создания моментального снимка в дБ для выполнения запросов к нему и удаления моментального снимка, когда он будет завершен.
Я думал, что можно было бы использовать 'with execute as owner "в объявлении процедуры. Однако я всегда получаю следующую ошибку:
CREATE DATABASE permission denied in database 'master'.
Вот мой код:
-- The user that create the sp has sysadmin right
CREATE OR ALTER PROCEDURE [dbo].[makeSnapshot] WITH EXECUTE AS OWNER
AS
-- just an extract of the code (should test if exist...)
DECLARE @exec NVARCHAR(2000)
set @exec = 'CREATE DATABASE test_dbss1900 ON ( NAME = test, FILENAME =
''C:\\Program Files\\Microsoft SQL Server\\MSSQL14.SQLSERVER2017\\MSSQL\\Data\\test_1900.ss'' ) AS SNAPSHOT OF test';
EXEC (@exec)
GO
-- try to execute it (with any user)
EXEC dbo.[makeSnapshot]
Кто-нибудь знает, как мне создать сохраненный процесс, который позволит обычному пользователю создать снимок БД?
Спасибо за любую помощь!
Хосе