Ограничить представление sys.databases подключаемыми базами данных
Как ограничить результаты от sys.databases
к доступным базам данных?
Мы переходим на группы доступности и сервер реплики, работающие на sql-server 2017.
До этого у меня был оператор select, работающий в master-database, чтобы увидеть, какие базы данных работают на сервере (select name, state from sys.databases
), а затем позволить пользователю выбрать базу данных и настроить соединение с базой данных для дальнейших SQL-операторов.
Но теперь в новой системе с группами доступности и сервером реплики я вижу больше баз данных, к которым я не могу подключиться, когда открываю соединение с одной группой доступности.
Операторы выбора показывают все базы данных, даже если они принадлежат другой группе доступности (они размещены на том же сервере-реплике).
Проблема в том, что для dbo не проблема выяснить, какие базы данных относятся к группе доступности (sys.availabiltiy
- Views), но обычный пользователь не имеет необходимых прав для просмотра этих sys-Views, и я не хочу давать ему view_server_stats
роль.