2008-10-14 5 views
4

По умолчанию, если вы подключаетесь к удаленному SQL Server через учетную запись, у которой есть доступ, чтобы сказать 1 из 10 баз данных. Вы по-прежнему увидите в обозревателе объектов все другие базы данных, очевидно, из-за разрешений, которые вы не можете запросить у них, но вы можете увидеть их имена.Ограничить список баз данных с разрешения SQL Server

Я слышал, что существует метод, который отключает это поведение, но я не смог найти ответ, знает ли кто-нибудь, как это сделать? Для примера у меня есть SQL Server под названием MyDbServer, он имеет 4 базы данных,

  1. MyDatabase
  2. YourDatabse
  3. PrivateDatabase
  4. ReallyPrivateDb

При подключении через учетную запись, которая только имеет разрешения на «YourDatabse», вы все равно увидите список всех других баз данных, попытки запроса предоставят разрешение «выбрать» или аналогичную ошибку.

Для систем безопасности мы НЕ хотим, чтобы пользователи видели какую-либо базу данных, кроме тех, на которые они были сопоставлены.

ответ

1

This blog рассказывает о методах сокрытия БД как для SQL Server 2000 и SQL 2005.

0

Суть его является:

use master 
go 
deny VIEW any DATABASE to login1 
go 

где login1 является Войти счет, который вы хотите ограничить.

+1

На самом деле это не доходит до конца, статьи в блоге, было немного сложно, но ключ заключается в том, что пользователь должен быть DBO данной статьи – 2008-10-15 21:17:50

+0

* не база данных статьи – 2008-10-15 21:18:47

1

После того, как мой клиент столкнулся с идентифицированными ресурсами, я провел некоторое тестирование и создал this blog posting с немного более контекстом и инструкцией о том, как это сделать.