Ограничить список баз данных только теми, у кого есть разрешение SQL Server

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

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

  1. MyDatabase
  2. Ваша база данных
  3. PrivateDatabase
  4. ReallyPrivateDb

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
6 027
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

Вкратце:

use master
go
deny VIEW any DATABASE to login1
go

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

На самом деле, это не все, статья в блоге, была немного трудной для понимания, но ключ в том, что пользователь должен быть DBO данной статьи.

Mitchel Sellers 16.10.2008 01:17

Было бы неплохо, если бы в SQL Server Management Studio вы могли щелкнуть правой кнопкой мыши по базе данных и сказать, что показывать только эту базу данных для этого профиля. Но это никогда не будет так просто. Мой сценарий: когда я вхожу на свой SQL Server в Godaddy с помощью SQL Server Management Studio, я вижу сотни других баз данных, и мне каждый раз приходится прокручивать их вниз. В следующий раз я назову свою базу данных "_AAAMydatabase"

Eric Bishard 16.10.2014 03:53

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

Похоже, что недостатком является то, что только один пользователь одновременно может быть dbo. Следовательно, у клиента может быть только 1 пользователь базы данных ... Верно?

NotMe 16.10.2008 01:50

Другие вопросы по теме