Вот английский, за которым я следую (ориентированные подсказки Cisco):
Говоря со стороны разработки, я могу сказать, что администратор должен смочь заблокировать всех вниз к их собственной базе данных (и вероятно ведущее устройство также для метаданных). Из MSDN список SQL Server securables включает базы данных, и полномочия включают способность даже видеть базу данных. Вот ссылка на соображения безопасности MSDN для баз данных.
Studio управления получает список баз данных от sys.databases. Полномочия по умолчанию на sys.databases для каждого входа в систему для наблюдения только своей собственной базы данных:
Если вызывающая сторона sys.databases не является владельцем базы данных, и база данных не является ведущим устройством или tempdb, минимальные полномочия, требуемые видеть, что соответствующая строка, ИЗМЕНЯЮТ ЛЮБУЮ БАЗУ ДАННЫХ или ПРОСМАТРИВАЮТ ЛЮБОЕ разрешение уровня сервера базы данных или разрешение CREATE DATABASE в основной базе данных. База данных, с которой подключена вызывающая сторона, может всегда просматриваться в sys.databases.
Если у Вас есть логины, которые видят базы данных другой, который их собственное, это подразумевает, сказал, что логины имеют ненужные полномочия, как CREATE DATABASE.
Используя MS SQL этот путь как общий хост не кажется мне желательный вообще - но Вы получаете то, за что Вы платите. Если Ваши положения и условия Вашего контракта не говорят, что Вы получаете свой собственный экземпляр SQL и только получаете базу данных в общем экземпляре, то Вы действительно получаете то, за что Вы платите.
Это скрывает другие БД и пользователей, но только для одного пользователя (вероятно, то, что вам все равно нужно). Я тестировал его на MS SQL 2008 R2.
В Server Management Studio:
Чтобы скрыть базы данных для всех LOGINS, удалите/отзовите разрешение "VIEW ANY DATABASE" из роли публичного сервера
http://sqlism.blogspot.com/2014/10/preventing-logins-and-users-to-see. html