Фон
У меня есть приложение, которое охватывает несколько баз данных на Microsoft SQL Server, назовем их PROD и ARCHIVE. В целях аудита, когда пользователь обращается к базам данных через приложение, их учетные данные используются в базе данных.
В некоторых установках этого приложения ARCHIVE не существует, и имеется код для обработки, отсутствующий в sys.databases. Но когда ARCHIVE существует, у всех есть доступ к PROD и ARCHIVE.
Проблема
Мы хотели бы иметь возможность фрагментировать приложение так, чтобы все пользователи сохраняли доступ к PROD, но некоторые пользователине могут получить доступ к АРХИВУ. В этих случаях я хотел бы использовать ветвление, которое мы должны проверить, существует ли ARCHIVE и имеет ли текущий логин какой-либо доступ к нему.
Не так уж плохо, за исключением того, что я должен иметь возможность запуститьзапрос, который находит его только с доступом к PROD, и большая часть того, что я могу найти в Интернете, дает мне запросы для запуска с ARCHIVE.sys.database_permissions.
Есть ли запрос, который я могу запустить, чтобы проверитьчто я не могу получить доступ к АРХИВУ, когда у меня есть только доступ к PROD?