Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 авторизация и аутентификация  [new]
dimonix
Member

Откуда:
Сообщений: 13
Доброго времени суток!
Делаю лабу по предмету СУБД.
Для своих эксперементов решил использовать MS SQL Server 2008 R2.
Суть лабы в том, что бы создать базу, в нее добавить таблички и как то с этим делом работать.

Сейчас нужно прикрутить, что то типа авторизации и аутонтификации пользователей.
Дословно таск такой:

Добавить в проект несколько категорий для пользователей с разными правами доступа, а
именно:
1. разным категориям доступны разные таблицы
2. общая таблица, но у определенных категорий пользователей есть доступ к
определенным записям (например, в зависимости от значения какого-либо поля:
администраторы видят все записи в таблице, операторы только свои записи и т.п.)
3. аналогично пункту 2, только у конкретного пользователя (не категории) есть доступ
к определенному набору записей
4. запретить запись и разрешить только чтение из таблицы для определенно
категории пользователей.

Вопрос: можно ли все это реализовать лишь средствами SQL Server? Если да укажите пожалуйста наиболее простую и быструю дорожку?

З. Ы.
Не много погуглив я узнал, что в любой базе по у молчанию создается несолько таблиц для учета пользователей, их, ролей и прав (sys.database_permissions, sys.database_role_members, sys.database_principals, sys.master_key_passwords).
Я так понял что могу создать пользователя бд на уровне отдельной базы и конектится к ней от имени этого пользователя. Есть какоето понятие schema securable scope, с помощью этой штуки я могу задать объекты внутри базы данных к которым пользователь получит доступ, но я не нашел пока инфы о том как реализовать ограничение доступа к отдельным записям в таблице и как вообще связать какую то запись в таблице с пользователем бд.

По мере изучения проблему у меня создалось впечатление что MS SQL Server 2012 более крут в этом вопросе, есть ли смысл использовать его или я могу решить с теми же трудозатратами решить поставленые задачи с помощью MS SQL Server 2008 R2?
26 мар 13, 13:49    [14096745]     Ответить | Цитировать Сообщить модератору
 Re: авторизация и аутентификация  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3348
dimonix
но я не нашел пока инфы о том как реализовать ограничение доступа к отдельным записям в таблице и как вообще связать какую то запись в таблице с пользователем бд.
Встроенных средств нет, гуглить Row Level Security.
26 мар 13, 13:54    [14096772]     Ответить | Цитировать Сообщить модератору
 Re: авторизация и аутентификация  [new]
Гость333
Member

Откуда:
Сообщений: 3683
dimonix
но я не нашел пока инфы о том как реализовать ограничение доступа к отдельным записям в таблице

Это называется "row level security", поддержки такой фичи "из коробки" в MSSQL нет (ни в 2008, ни в 2012), гуглите по фразе "SQL Server row level security".
26 мар 13, 13:55    [14096782]     Ответить | Цитировать Сообщить модератору
 Re: авторизация и аутентификация  [new]
Crimean
Member

Откуда:
Сообщений: 13148
ну, примитивную row level можно сделать представлениями с WITH CHECK OPTION
когда, грубо, в таблицу пишем ид пользователя / ид группы а в представление - тупое равенство текущего пользователя / членства в группе полю таблицы
только на практике этого, обычно, очень недостаточно. ну и дальше все только начинается. хотя, бывает, этого и достаточно
26 мар 13, 14:16    [14096897]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить