Назад | Перейти на главную страницу

Аутентификация Windows в SQL Server позволяет пользователю видеть ЛЮБУЮ базу данных

У меня есть экземпляр sql-сервера с примерно 50 базами данных. Разработчик, назовите его Джо, хочет получить доступ к одной существующей базе данных. Итак, я пошел дальше и создал новую учетную запись в студии управления sql server 2005, а в разделе сопоставления пользователей я указал, что у него есть доступ к этой базе данных.

После входа в систему мы заметили, что он может получить доступ к ЛЮБОЙ базе данных и открыть все таблицы, таблицы перетаскивания и т. Д.

Как мне ограничить его, не сделав его владельцем db_owner базы данных? Это как-то связано с "публичным" доступом по ролям?

Вот шаги, которые я предпринял, вошел в студию управления и пошел в безопасность-> логины, щелкнул правой кнопкой мыши и добавил новый «Вход в систему». Выбрал "Windows аутентификацию". На вкладке сопоставления пользователей я выбрал базу данных, к которой он должен иметь доступ, думая, что это даст ему доступ только к этой базе данных.

Затем я запустил студию управления и вошел в систему как он (проверка подлинности Windows), и он может открывать и видеть все таблицы из всех баз данных? Но я не хочу, чтобы он получил доступ ко всему этому?

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

Вы можете использовать хранимую процедуру xp_logininfo, чтобы увидеть, через какие доменные группы Джо может получить доступ к базе данных.

exec xp_logininfo 'YourDomain\JoesUserName'

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

У них больше прав, чем вы ожидаете.

Это не авторизация Windows, а разрешения.

Просмотр во всех базах данных означает, что у них есть права «системного администратора» на уровне сервера или доступ через группу Windows. Обычно кто-то может видеть всю базу данных, но при попытке ее расширения получает сообщение об ошибке. Нет ошибки = назначены некоторые разрешения.

А «DROP» означает системного администратора, если он применяется ко всем базам данных.

Является ли «Джо» членом группы администраторов SQL?