У меня есть база данных SQL Server 2005, к которой я пытаюсь получить доступ как ограниченная учетная запись пользователя с использованием аутентификации Windows. Мне добавили BUILTIN \ Users в качестве пользователя базы данных (до этого я даже не мог открыть базу данных). Я работаю в предположении, что у всех должны быть права доступа к «публичной» роли, поэтому я ничего не делал с назначением ролей. В tblFoo я могу использовать диалог свойств SSMS (страница «Разрешения»), чтобы добавить «public», а затем установить явные разрешения. Среди них «Грант» для SELECT. Но работает
SELECT * from tblFoo;
как ограниченная (BUILTIN \ Users) учетная запись выдает мне сообщение об ошибке «Выберите разрешение, запрещенное для объекта« tblFoo », базы данных« bar », схемы« dbo »». В диалоговом окне свойств есть кнопка «Действующие разрешения», но она неактивна.
Далее я попытался создать непривилегированную учетную запись с именем «UserTest», добавив ее на уровне сервера, а затем сопоставив ее с базой данных «bar». Это позволило мне добавить UserTest в список «Пользователи или роли», что позволило мне запустить «Действующие разрешения» для учетной записи. Нет разрешений, перечисленных вообще - это не кажется правильным. Учетная запись должна быть общедоступной, а общедоступные гранты (среди прочего) выбираются на tblFoo, так почему учетная запись UserTest не показывает действующее разрешение? Я чувствую, что схожу с ума здесь.
В сторону: я знаю, что многим людям не нравится использовать роль "public" для установки разрешений. Это всего лишь мое время возиться; В финальном дизайне я уверен, что у нас будет несколько гибких (пользовательских) ролей базы данных. Я просто пытаюсь выяснить, какое поведение я вижу, поэтому, пожалуйста, не "не делай этого!" ответы.
ОБНОВЛЕНИЕ: Очевидно, я знаю достаточно SQL Server, чтобы представлять опасность для себя и других. При настройке разрешений (как я уже сказал, «среди прочих») у меня был DENY CONTROL. Когда я установил это разрешение, мне показалось, что я попытался найти то, что он сделал, имел смутное представление и выбрал DENY. В настоящее время я не могу вспомнить, почему это казалось правильным, но, похоже, именно по этой причине я получал отказы в разрешениях. Поэтому я обновляю свой вопрос: может ли кто-нибудь объяснить разрешение «КОНТРОЛЬ» в отношении таблиц?