Using SQL Server 2022 Developer Edition.
In SSMS logged in as sa, I can run
BACKUP DATABASE master TO DISK = N'C:\MSSQLSERVER\Backups\Master-Full DatabaseBackup.bak' WITH NOFORMAT, INIT, NAME = N'master-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
But if I create a stored procedure (in a different database) to do the same (still logged in as sa), I get the error permission denied.
create PROCEDURE dbo.uspBackupMasterTest WITH EXEC AS OWNER AS BEGIN SET NOCOUNT ON; BACKUP DATABASE master TO DISK = N'C:\MSSQLSERVER\Backups\Master-Full DatabaseBackup.bak' WITH NOFORMAT, INIT, NAME = N'master-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 END
Msg 262, Level 14, State 1, Procedure dbo.uspBackupMasterTest, Line 6 [Batch Start Line 26]
BACKUP DATABASE permission denied in database 'master'.
Msg 3013, Level 16, State 1, Procedure dbo.uspBackupMasterTest, Line 6 [Batch Start Line 26]
BACKUP DATABASE is terminating abnormally.
How can I resolve this?