sys.database возвращает другой результат при запросе из хранимой процедуры - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно собрать все базы данных из хранимой процедуры.

Когда я выполняю этот код в SSMS, я получаю все доступные базы данных:

SELECT * FROM sys.databases;

Однако, если я оберну это в хранимую процедуру, я получу только master, tempdb и текущийбаза данных:

CREATE PROCEDURE dbo.ListDatabases
WITH EXECUTE AS OWNER
AS
SELECT * FROM sys.databases;
GO

EXEC dbo.ListDatabases;
GO

Это начало происходить со времени SQL 2017, но хорошо работало на предыдущих версиях MS SQL Server.

Я ожидаю получить тот же результат, когда процедура выполняется подта же учетная запись пользователя, что и отдельная выписка.Учетная запись, выполняющая оба запроса, является членом sysadmin роли сервера.

...