Страница 1 из 1
Разграничение прав
Добавлено: 09 фев 2008, 10:45
sax_on
Добрый день.
У меня есть вопрос. есть БД, которой пользуется Н-е количество людей. все они деляться на несколько групп (по правам доступа на уровне клиентской программы). также по правам доступа ограничиваются в записи в определенные таблицы.
Но, в этой же базе есть тблица с данными о всех пользователях. При загрузке программы юзер загружает эти данные (со своего поля). Как сделать так, чтобы он мог видеть в таблице только свое поле (а если sysdba, то все)
Firebird 2.0 + IBX
Добавлено: 09 фев 2008, 11:15
WildSery
Ты уж определись - записи или всё же поля.
Это совершенно разная секьюрити. И решения для них тоже различные.
Добавлено: 09 фев 2008, 23:30
sax_on
WildSery писал(а):Ты уж определись - записи или всё же поля.
Это совершенно разная секьюрити. И решения для них тоже различные.
Думаю, посто был неправильно интерпретирован. Запись - подразумевается операция записи.
Нужно сделать так, чтобы все юзеры, кроме sysdba при select'e получали только свою запись и не более.
И в добавок: нужно сделать так, чтобы только некоторые поля были для редактирования самим юзером, а остальные писались только через sysdba
Добавлено: 10 фев 2008, 00:02
Kotъ-Begemotъ
sax_on писал(а):WildSery писал(а):Ты уж определись - записи или всё же поля.
Это совершенно разная секьюрити. И решения для них тоже различные.
Думаю, посто был неправильно интерпретирован. Запись - подразумевается операция записи.
Нужно сделать так, чтобы все юзеры, кроме sysdba при select'e получали только свою запись и не более.
И в добавок: нужно сделать так, чтобы только некоторые поля были для редактирования самим юзером, а остальные писались только через sysdba
Ну и в чём вопрос? Создать соответствующие роли в БД и задать для соответствующих групп юзеров соответствующие роли?
Добавлено: 10 фев 2008, 10:12
Slavik
sax_on писал(а):Нужно сделать так, чтобы все юзеры, кроме sysdba при select'e получали только свою запись и не более.
Вьюшка с соответствующей секцией where тебе поможет.
sax_on писал(а):И в добавок: нужно сделать так, чтобы только некоторые поля были для редактирования самим юзером, а остальные писались только через sysdba
Раздай права всем (можно и PUBLIC'у) на update только нужных полей, а sysdba всё равно сможет редактировать все. Только в триггере желательно проверку сделать на то, что обычный пользователь редактирует именно свою запись. Или всё то же самое через хранимую процедуру.
Добавлено: 10 фев 2008, 13:34
sax_on
А может кто-то линк дать на "что почитать". Я в полной мере пока не знаком со всеми этими терминами.
Чтобы не прочитать что-то ненужное, может, у кого есть хорошие источники. Желательно в виде статьи, а не книжку...
Добавлено: 11 фев 2008, 09:18
kdv
все на сайте.
www.ibase.ru/devinfo/sqlroles.htm
по разграничению прав на уровне записей есть статья
www.ibase.ru/devinfo/treedb2.htm
там есть еще пара ссылок на варианты реализации.