Разграничение прав

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
sax_on
Сообщения: 5
Зарегистрирован: 08 фев 2008, 14:48

Разграничение прав

Сообщение sax_on » 09 фев 2008, 10:45

Добрый день.
У меня есть вопрос. есть БД, которой пользуется Н-е количество людей. все они деляться на несколько групп (по правам доступа на уровне клиентской программы). также по правам доступа ограничиваются в записи в определенные таблицы.
Но, в этой же базе есть тблица с данными о всех пользователях. При загрузке программы юзер загружает эти данные (со своего поля). Как сделать так, чтобы он мог видеть в таблице только свое поле (а если sysdba, то все)

Firebird 2.0 + IBX

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 09 фев 2008, 11:15

Ты уж определись - записи или всё же поля.
Это совершенно разная секьюрити. И решения для них тоже различные.

sax_on
Сообщения: 5
Зарегистрирован: 08 фев 2008, 14:48

Сообщение sax_on » 09 фев 2008, 23:30

WildSery писал(а):Ты уж определись - записи или всё же поля.
Это совершенно разная секьюрити. И решения для них тоже различные.
Думаю, посто был неправильно интерпретирован. Запись - подразумевается операция записи.
Нужно сделать так, чтобы все юзеры, кроме sysdba при select'e получали только свою запись и не более.
И в добавок: нужно сделать так, чтобы только некоторые поля были для редактирования самим юзером, а остальные писались только через sysdba

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 10 фев 2008, 00:02

sax_on писал(а):
WildSery писал(а):Ты уж определись - записи или всё же поля.
Это совершенно разная секьюрити. И решения для них тоже различные.
Думаю, посто был неправильно интерпретирован. Запись - подразумевается операция записи.
Нужно сделать так, чтобы все юзеры, кроме sysdba при select'e получали только свою запись и не более.
И в добавок: нужно сделать так, чтобы только некоторые поля были для редактирования самим юзером, а остальные писались только через sysdba
Ну и в чём вопрос? Создать соответствующие роли в БД и задать для соответствующих групп юзеров соответствующие роли?

Slavik
Сообщения: 115
Зарегистрирован: 17 янв 2007, 11:52

Сообщение Slavik » 10 фев 2008, 10:12

sax_on писал(а):Нужно сделать так, чтобы все юзеры, кроме sysdba при select'e получали только свою запись и не более.
Вьюшка с соответствующей секцией where тебе поможет.
sax_on писал(а):И в добавок: нужно сделать так, чтобы только некоторые поля были для редактирования самим юзером, а остальные писались только через sysdba
Раздай права всем (можно и PUBLIC'у) на update только нужных полей, а sysdba всё равно сможет редактировать все. Только в триггере желательно проверку сделать на то, что обычный пользователь редактирует именно свою запись. Или всё то же самое через хранимую процедуру.

sax_on
Сообщения: 5
Зарегистрирован: 08 фев 2008, 14:48

Сообщение sax_on » 10 фев 2008, 13:34

А может кто-то линк дать на "что почитать". Я в полной мере пока не знаком со всеми этими терминами.
Чтобы не прочитать что-то ненужное, может, у кого есть хорошие источники. Желательно в виде статьи, а не книжку...

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 фев 2008, 09:18

все на сайте.
www.ibase.ru/devinfo/sqlroles.htm
по разграничению прав на уровне записей есть статья
www.ibase.ru/devinfo/treedb2.htm
там есть еще пара ссылок на варианты реализации.

Ответить