The following SQL script should be run in SQLCMD mode for every Azure Managed instance you want to monitor. To enable SQLCMD mode, open the Query menu in Management Studio and select SQLCMD mode.
:setvar username <TypeGovernorSQLLoginHere>
:setvar password <TypeVeryComplexPasswordHere>
USE [master]
CREATE LOGIN [$(username)] WITH PASSWORD=N'$(password)',DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF
GRANT VIEW ANY DATABASE TO [$(username)];
GRANT VIEW SERVER STATE TO [$(username)];
GRANT ALTER TRACE TO [$(username)];
GRANT VIEW ANY DEFINITION TO [$(username)];
USE [msdb]
CREATE USER [$(username)] FOR LOGIN [$(username)]
GRANT SELECT ON OBJECT::sysjobs to [$(username)];
GRANT SELECT ON OBJECT::sysjobhistory to [$(username)];
EXEC sp_MSforeachdb 'begin try
USE [?] CREATE USER [$(username)] FOR LOGIN [$(username)];
GRANT SELECT ON OBJECT::sys.system_internals_allocation_units to [$(username)];
end try
begin catch
end catch';
If new databases are added to existing instances at a later point, the following script should be run:
:setvar username EXEC sp_MSforeachdb ' USE [?] CREATE USER [$(username)] FOR LOGIN [$(username)]; GRANT SELECTON OBJECT::sys.system_internals_allocation_units to [$(username)];';