Это на самом деле не сработает так, как это имеет смысл, или вы можете ожидать, что так и будет.
Вы REVOKE VIEW ANY DATABASE
из общедоступной роли, но тогда пользователь должен быть владельцем базы данных, иначе он не будет виден, но к нему все еще можно получить доступ.
Проблема заключается в недостатке безопасности компонента Database Engine, который вряд ли будет исправлен в текущем или будущем выпуске SQL Server.
Эрланд Соммарског недавно открыл для этого следующий элемент подключения, и недавно он обсуждался в твиттере и с Microsoft SQL MVP's
.
Проголосуйте за подключение и помогите Microsoft исправить положение:
Обратная связь
В основном разрешения хранятся на уровне базы данных, поэтому потребуется перечислить каждую базу данных, чтобы определить, есть ли у пользователя права подключения для отображения базы данных в проводнике объектов, что является дорогостоящей задачей и как использовался старый EM делать вещи.
Предлагаемое решение заключается в том, чтобы эта информация также поддерживалась на уровне сервера, что является существенным изменением.