Ограничить список баз данных единицами с разрешением SQL Server - PullRequest
4 голосов
/ 14 октября 2008

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

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

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

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

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

Ответы [ 3 ]

1 голос
/ 16 октября 2008

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

1 голос
/ 14 октября 2008

В этом блоге рассказывается о методах сокрытия БД для SQL 2000 и SQL 2005.

0 голосов
/ 14 октября 2008

Суть этого:

use master
go
deny VIEW any DATABASE to login1
go

где login1 - учетная запись, которую вы хотите ограничить.

...