LINUX.ORG.RU

[SQL] ACL для строки

 


0

2

Доброго времени суток!

Подскажите пожалуйста возможные решения в популярных БД, которые позволяют сделать ACL для каждой строки в таблице?
Суть - есть несколько клиентов (Qt) и БД для них, очень не хочется делать middleware, ходить бы напрямую к базе, да и делов-то. Но вот такой вопрос безопасности беспокоит - надо чтобы пользователь мог менять только определенные записи (например свои).

Знаю, что такое есть в Oracle, но в моем случае это пушка для воробьев. Еще вижу Veil (http://pgfoundry.org/projects/veil) для pgsql - как оно? Кто-то пользовался? А то альфа-статус в течении 6 лет настораживает.

Спасибо.

★★★★★

Как вариант - думаю может запретить доступ к таблицам, и разрешить только через view, но теряем в гибкости...

dib2 ★★★★★
() автор топика

запрети доступ к таблицам напрямую. разреши только к хранимым процедурам, которые работают с этими таблицами. Например, в firebird вместо

select * from table

можно использовать

select cookie from authenticate(login, pass) select * from table_wrapper(cookie)

первая - авторизует пользователя с записью его идентификатора в спецтаблицу в которой ссыль на его права доступа. Вторая - селектит из таблицы только разрешенные записи (в специальном скрытом столбце таблицы находится нечто, что вкупе с таблицей прав доступа пользователей говорит - можно или нельзя)

Ааналогично процедуры на update, delete и insert. Да, есть проблемы с WHERE с таким подходом. но как вариант пойдёт.

mmarkk
()

Я использую способ, предложенный dib2, т.е. доступ к таблице только через view. Причём, в моём случае я не даю доступ даже на чтение, если требуется. Всё организуется быстро, просто и надёжно.

unC0Rr ★★★★★
()

а как насчёт самопальной реализации ACL для каждой строки в таблице?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.