@mr_blond97

Как в mssql сделать так, что бы пользователь не мог видеть определенные базы совсем?

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

c7a3106fac0f45dcbfda752987067866.png
  • Вопрос задан
  • 1080 просмотров
Пригласить эксперта
Ответы на вопрос 1
mahoho
@mahoho
Full stack certified PHP developer.
Очень важно понимать различие между пользователем и логином в SQL Server. Тут используется двухуровневая система аутентификации: логин (Security - Logins) используются для входа в инстанс (запущенный экземпляр БД, их может быть несколько на одной машине) сервера. Для логинов сущесвуют роли и права, связанные с администрированием и получением информации об инстансе. Пользователи (Databases - Security - Users) существуют на уровне базы данных, у них также есть свои роли и права, связанные с взаимодействием базой данных. То, что вы хотите сделать - это запретить логину видеть все базы данных, если он не сисадмин и не является владельцем какой-либо базы. Лучше всего это сделать при помощи создания серверной роли и включения в нее логина:
create server role blind_users;

deny view any database to blind_users;

alter server role blind_users add member login_name;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы