powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Row-Level Security, Row Security Policies
72 сообщений из 72, показаны все 3 страниц
Row-Level Security, Row Security Policies
    #39321999
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Друзья,

собственно сабж планируется как в PostgreSQL?
https://www.postgresql.org/docs/current/static/ddl-rowsecurity.html
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322026
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HS,

я в планах на 4.0 ничего такого не наблюдаю. Хотя изначально там и SQL SECURITY {DEFINER | INVOKER} не планировалось, так что возможно и будет.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322056
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSДрузья,

собственно сабж планируется как в PostgreSQL?
https://www.postgresql.org/docs/current/static/ddl-rowsecurity.html

бессмысленная фича ИМХО - разработчики баз элементарным разграничением прав не заморачиваются (в силу неграмотности)
не вижу профита
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322075
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratIsk,

если кому-то плевать на безопасность, то это не значит что плевать всем. Фича в принципе полезная, но существует простой workaround: отбираешь права на SELECT у таблиц и делаешь вьюхи с фильтрацией, а потом работаешь только через эти вьюхи. Кстати в этом обходном пути есть даже преимущество, можно обойти в случае необходимости ограничение в ХП, работая в них с таблицей напрямую (ХП конечно надо будет дать права на SELECT).
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322097
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Денис,

Тут бритва Оккама в полный рост - зачем плодить вьюхи - согласитесь, отдает слегка проктостоматологией, если того же можно достичь безопасностью. Понимаю, что условным 95% это не нужно.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322106
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы просто в GRANT/REVOKE не сделать для SELECT, UPDATE, INSERT также, как для REFERENCES(<список_полей>)?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322109
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

ты не понимаешь о чём речь. Читай каждое слово Row Level Security
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322110
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
rdb_dev,

ДЛЯ СТРОК. Вот, к примеру, Марат не видит профита - ему запрещен селект на половину строк таблицы.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322117
Filippov Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HS ...
собственно сабж планируется как в PostgreSQL?
https://www.postgresql.org/docs/current/static/ddl-rowsecurity.html
если такое будет, то будет совсем неплохо.
С подобными задачами сталкивался в системах, наворачивали свои обертки.

В любом случае, наличие различных вариантов решения задачи - это всегда только плюс.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322133
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSДЛЯ СТРОКПонятно. Но, ИМХО, это может существенно сказаться на производительности сервера не в лучшую сторону. Если кому-то для отдельной таблицы (например, в БД документооборота) понадобится такая фича, можно вполне обойтись get/set хранимыми процедурами.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322142
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
rdb_dev,

... есть два стула ...
В любом случае должно сказаться. Обертка - тоже лишние фетчи. Так что выбор между штатными средствами и оберткой.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322144
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 6 октября 2016 г. 16:53:12:

Rdb Dev> можно вполне обойтись get/set хранимыми процедурами.
Чушь.
Модератор: cencored
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322153
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSТак что выбор между штатными средствами и оберткой.Если уж делать такую фичу, то с возможностью её включения/отключения для каждой БД в отдельности через gfix.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322158
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Включение-выключение уже реализовано через -shutdown
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322159
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryВключение-выключение уже реализовано через -shutdownРеализовано через -shutdown включение/отключение чего? Row Level Security или самой базы?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322160
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

второй раз повторяю, ты не шаришь. Хоть бы глянул ссылку что ли, прежде чем говорить. Политики создаются отдельно для каждой таблицы через SQL и через него же удаляются (выключаются).
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322166
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисПолитики создаются отдельно для каждой таблицы через SQL и через него же удаляются (выключаются).И при этом сервер для любой таблицы проверяет, задана ли политика, а если в базе эта фича не используется совсем, то имеем бесполезный overhead? Не лучше ли для такой базы отключить эту фичу совсем?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322171
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денися в планах на 4.0 ничего такого не наблюдаю. Хотя изначально там и SQL SECURITY {DEFINER |
INVOKER} не планировалось, так что возможно и будет.

Там и mandatory-то фичи уже в глубоком отставании от таймлайна, а ты надеешься, что кто-то
совсем левые замержит?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322172
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

феерический бред. По твоей логике триггеры надо тоже запретить совсем, потому что при каждой операции модификации надо проверять не существует ли триггер.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322173
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devа если в базе эта фича не используется совсем, то имеем бесполезный overhead?

Не имеем. Один if булевого флага погоды не сделает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322175
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

не надеюсь. Но мало ли кто-нибудь из Red Soft запилит.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322178
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, триггеры есть практически всегда, даже если у таблицы всего два поля и одно из них PK.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322180
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНе имеем. Один if булевого флага погоды не сделает.Фетчи из "хранилища" политик не в счет?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322183
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Наличие политик можно проверить на этапе препарирования запроса и запомнить в кеше метаданных.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322185
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devФетчи из "хранилища" политик не в счет?
Конечно нет. Зачем фетчить что-то из "хранилища политик", если для таблицы политика не
установлена?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322201
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Друзья,

Я что хочу сказать? Утечки последних лет
http://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/
отчетливо указывают вектор в жопу в сторону большей безопасности.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322206
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSв сторону большей безопасности.
Пудовый замок на калитке в заборе из полуметрового штакетника смотрится довольно глупо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322234
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HS, на этом твоём говносайте есть подробное описание хотя бы одного инцидента, который мог
быть предотвращён использованием RLS?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322258
HS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HS
Гость
Dimitry Sibiryakov,

Я не хакер, не знаю как БД целиком сливают, но дампы в нете видел.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322261
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSне знаю
"...а не знаешь - не толкуй." (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322481
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devРеализовано через -shutdown включение/отключение чего? Row Level Security или самой базы? Вот и твоё предложение настолько же смешно.
rdb_devWildSery, за ЧСВ МП, моего совсем не видать. :)Да, раздутое. Но там есть чего раздувать.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322545
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Плоскому наблюдателю, глядящего на вращающееся колесо перпендикулярно плоскости, вдоль диагонали, кажется, что оно не выполняет никаких полезных действий - ведь местоположение и форма объекта никак не меняется.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322573
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

МП своими ответами намекает, что многие твои сообщения мягко говоря мимо кассы. Делает он это в особой присущей только ему манере, а ты просто этого не понимаешь.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322593
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, с каких это пор распущенность и откровенное хамство стали называться "манерами"? Ты замечал за мной хамство или издевательства в ответах на сообщения, в которых человек явно заблуждается или ошибается? Хамством я отвечаю только на хамство.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322604
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

ну здесь он переусердствовал конечно. Но всё же ты не прав в этой теме. Согласен?
Сама по себе фича полезная. Её наличие само по себе никак на производительности не скажется. Использование может сказаться, но использовать или нет решение будет за тем кто проектирует БД.

З.Ы. Не в коем случае не агитирую за внедрение этой фичи в Firebird. Имеющийся функционал позволяет решить данную задачу, пусть и немного более сложно, но если её сделают не вижу в этом ничего плохого.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322626
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисСама по себе фича полезная.Где я написал, что эта фича абсолютно бесполезна?
Я лишь написал, что если эту фичу когда-нибудь реализуют, то хорошо бы иметь возможность её отключения для БД. В чем, по твоему, будут храниться политики RLS? В системных таблицах RDB$?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322657
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

опять 25. По второму кругу пошли?
Эффективность любой фичи зависит от реализации. Или ты априори считаешь, что тот кто будет имплементировать эту фичу настолько криворукий, что не способен сделать это с минимальным оверхедом для случаев когда у таблицы нет политики?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39322743
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devWildSery, на данном форуме это самое "колесо" не вращается в какую-либо сторону, от слова СОВСЕМ.Я ведь тоже самое сказал. Для плоского наблюдателя так и выглядит.


Модератор: Почистил слегка, но ещё одно "монопенисуально", "придурки" или указания, как мне или ещё кому вести себя перед тобой - некоторое время read only, а в дальнейшем, возможно, включается режим нулевой терпимости.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39333985
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного запоздало...

На данный момент прорабатываю описание и оформление собственного решения в постгресе, так как не вижу пользы для бизнес приложений от стандартного RLS.
RLS - инструмент неудобный и понятный только Администратору БД. При этом администратор БД не может настраивать RLS на этапе создания структуры БД, так как эти правила формулируются после наполнения пользователями базы данных определенных справочников.

Основная идея:
1. Создать и распределить БИЗНЕС РОЛИ между пользователями
2. Закрыть доступ всем пользователям ко всем таблицам БД
3. Создать роль - БИЗНЕС АДМИНИСТРАТОРА
4. Создать ПРОМЕЖУТОЧНУЮ ТАБЛИЦУ ДОСТУПА содержащую критерии доступа (значения полей) к записям по всем таблицам БД по БИЗНЕС РОЛЯМ. Предоставить полный (чтение, запись) доступ к данной таблице Бизнес администратору;
5. Создать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ, которая по ПРОМЕЖУТОЧНОЙ ТАБЛИЦЕ создает ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ с уже встроенными ограничениями доступа к записям текущему пользователю
6. Программисту, перед обращением к таблице необходимо вызывать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ и далее обращаться не к таблице, а к ВРЕМЕННОМУ ПРЕДСТАВЛЕНИЮ
7. С закрытием сессии, ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ автоматически удаляется

Решение работает без задержек, индексы включаются штатно
Есть решаемые нюансы с зависшими временными представлениями в длинных сессиях

Думаю, подобно решение можно применять для большинства СУБД, в т.ч. для Firebird, InterBase
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39333986
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sereginsereginДумаю, подобно решение можно применять для большинства СУБД, в т.ч. для Firebird, InterBase

Нельзя. За динамические метаданные руки отрывают до самой задницы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334501
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как это работает ?

т.е. допустим есть у нас таблица X в кoторой в том числе есть столбец CLASS_ID integer c *разными* данными

допустим мы через row-level security дали Васе Пупкину право читать таблицу в тех строках, где CLASS_ID=4
никаких других прав ему не давали

что будет если этот Вася запустит такие запросы как

select * from X where CLASS_ID=5

или

select * from X order by CLASS_ID

строки с пятёркой в этом поле в таблице есть, но права на чтение у васи только на строки с 4-кой

какой результат будет у таких запросов ? Явная ошибка или скрытая фильтрация ?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334504
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

не знаю как в PG сделали, но в Oracle просто скрытая фильтрация, что правильно.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334509
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sereginseregin5. Создать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ, которая по ПРОМЕЖУТОЧНОЙ ТАБЛИЦЕ создает ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ с уже встроенными ограничениями доступа к записям текущему пользователю

возникает вопрос, не кажется ли вам что это называется 3-tier оно же applicaiton server ?

зачем пинками заталкивать трехзвенку в SQL ?
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334520
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисв Oracle просто скрытая фильтрация, что правильно.

чего и опасался

правильно? проглатывать ошибки безопансости - это также правильно как try .... except end;

....был еще один сервер, который тоже любил все делать "правильно" и втихую разруливaть ошибки исходя из собственных угадаек "что этот человек мог хотеть" - http://sql-info.de/mysql/gotchas.html
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334560
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

твоё мнение не есть единственно верное. И почему это надо кидать ошибку? Для любого пользователя эта таблица выглядит так как будто записей не предназначенных не для него не существует вовсе.

Ну, на самом деле может принести пару часов геморроя. Во-первых RLS это тупой фильтр и никакого обходного пути "админ видит всё" нет, если только вы не задали это в самом фильтре. Конечно админ всегда может удалить или отрубить политику. Во-вторых может захотеться обойти RLS в одной их ХП, без редактирования или удаления политики ни чего не выйдет.

З.Ы. Я уже говорил всё тоже самое можно сделать и через вьюху, но немного дольше.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334589
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениствоё мнение не есть единственно верное

Как и мнение оракла

Симонов ДенисИ почему это надо кидать ошибку?

потому что это якобы нарушение security

а если же это не имеет отнощшения к security - То и назывтаь это надо как-нибудь типа Dynamic View, Virtual Table Expression и т.д.

Симонов ДенисДля любого пользователя эта таблица выглядит так как будто записей не предназначенных не для него не существует вовсе.

безусловно

и так же программа с try ... except end; для любого пользователя выглядит, как пpограмма без ошибок
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334602
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

какое ещё блин нарушение? Особенно вот здесь

Код: sql
1.
select * from X order by CLASS_ID



Если организовать так как ты хочешь данная фича была бы бесполезной, потому как требовала бы к каждому запросу приписать фильтр аналогичный тому что в политике стоит
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334605
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochпотому что это якобы нарушение security
Нет, нарушением security как раз будет выброс ошибки, подтверждающей, что запись
CLASS_ID=5 в природе существует.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334617
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovsereginsereginДумаю, подобно решение можно применять для большинства СУБД, в т.ч. для Firebird, InterBase

Нельзя. За динамические метаданные руки отрывают до самой задницы.


Глянул на документацию Firebird, действительно с временными представлениями как-то там туго. В Postgres простая команда CREATE TEMP VIEW, представление удаляется автоматически при закрытии сессии.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334619
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Sereginseregin!
You wrote on 26 октября 2016 г. 16:39:06:

Sereginseregin> В Postgres простая команда CREATE TEMP VIEW, представление удаляется автоматически при закрытии сессии.а смысл?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334631
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ariochsereginseregin5. Создать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ, которая по ПРОМЕЖУТОЧНОЙ ТАБЛИЦЕ создает ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ с уже встроенными ограничениями доступа к записям текущему пользователю

возникает вопрос, не кажется ли вам что это называется 3-tier оно же applicaiton server ?

зачем пинками заталкивать трехзвенку в SQL ?

Сервер приложения - тормозная прокладка, но это не тема топика. Где Вам удобно, там процедуры и вызывайте.

Использование Представления в SQL запросе планировщиком постгреса воспринимается прозрачно, Он подставляет в запрос таблицу напрямую, а условия отбора внутри Представления объединяет с условиями отбора запроса. Индексы выбирает исходя из совокупности условий выборки - выборка выполняется максимально быстро.

RLS в постгресе данные фильтрует, но проблема в напиcании универсальных RLS для всех пользователей - они к тому же будут тормозить выборки. А у меня в представлениях ограничения индивидуальные для каждого пользователя.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334650
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЕсли организовать так как ты хочешь данная фича была бы бесполезной

потому что она не относится к безопасности, она относится к SELECT/VIEW и назыввать ее security - обман

Dimitry SibiryakovНет, нарушением security как раз будет выброс ошибки, подтверждающей, что запись
CLASS_ID=5 в природе существует.

ого!
ну тогда выброс ошибки нарушение PK unique constraint при insert с повторным ID - тоже нарушение безопасности, "подтверждающее, что запись ID=<<PK duplicate>> в природе существует."
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334725
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МимопроходящийHello, Sereginseregin!
You wrote on 26 октября 2016 г. 16:39:06:

Sereginseregin> В Postgres простая команда CREATE TEMP VIEW, представление удаляется автоматически при закрытии сессии.а смысл?



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
-- создаем временное представление mytable_temp_acc_view
-- к таблице mytable
-- с доступными записями текущему пользователю SESSION_USER
SELECT create_temp_acc_view('mytable', SESSION_USER, 'read'); 
                                                                                         
-- Далее обращаемся к представлению для выборки доступных данных
SELECT 
    ...
FROM mytable_temp_acc_view
... ;


-- После закрытия сессии представление mytable_temp_acc_view самостоятельно исчезнет
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334803
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ariochпотому что она не относится к безопасности, она относится к SELECT/VIEW и назыввать ее security - обман

ИМХО наоборот, важно не сообщать пользователю об ошибке по безопасности. Пользователю не положено (рискованно для безопасности системы) знать, что в БД существуют какие-то еще записи, которые ему недоступны.

1. Пользователь запросил данные - ему предоставили все доступные. Какие еще существуют записи в БД - ему знать не положено.
2. Пользователь решил добавить (изменить, удалить) данные в БД. Сохранились только те, которые ему положено сохранять. По остальным выдалось сообщение: "Данные с такими реквизитами в БД сохранить нельзя!" - о проблемах с безопасностью не должно быть ни слова!
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39334806
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ariochпотому что она не относится к безопасности, она относится к SELECT/VIEW и назыввать ее security - обман

ИМХО наоборот, важно не сообщать пользователю об ошибке по безопасности. Пользователю не положено (рискованно для безопасности системы) знать, что в БД существуют какие-то еще записи, которые ему недоступны.

1. Пользователь запросил данные - ему предоставили все доступные. Какие еще существуют записи в БД - ему знать не положено.
2. Пользователь решил добавить (изменить, удалить) данные в БД. Сохранились только те, которые ему положено сохранять. По остальным выдалось сообщение: "Данные с такими реквизитами в БД сохранить нельзя!" - о проблемах с безопасностью не должно быть ни слова!
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335428
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sereginsereginПользователь запросил данные - ему предоставили все доступные. Какие еще существуют записи в БД - ему знать не положено.

пользователь вообще не должен запускать IBExpert, а должен работать с пользовательским приложением, которое и обеспечит формирование правильных запросов теми или иными способами (хоть через VIEW и SP, хоть как угодно)

если же пользователь может создавать свои запросы ,то как проверить наличие невидимых данных он найдет - хоть через select count(*), хоть через update ... where ...
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335432
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,то как проверить наличие невидимых данных он найдет - хоть через select count(*), хоть через update ... where ...

да неужели. count(*) уже работает с неявным фильтром.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335433
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sereginsereginМимопроходящийHello, Sereginseregin!
You wrote on 26 октября 2016 г. 16:39:06:

пропущено...
а смысл?



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-- создаем временное представление mytable_temp_acc_view
-- к таблице mytable
-- с доступными записями текущему пользователю SESSION_USER
SELECT create_temp_acc_view('mytable', SESSION_USER, 'read'); 
                                                                                         
-- Далее обращаемся к представлению для выборки доступных данных
SELECT 
    ...
FROM mytable_temp_acc_view
... ;

-- После закрытия сессии представление mytable_temp_acc_view самостоятельно исчезнет



Как-то это стрёмно, делать временные метаданные

Правильнее казалось бы делать постоянные GTT с привязанной инструкцией по заполнению их нужными данными при первом обращении

CREATE GLOBAL TEMPORARY TABLE xxxx (......)
on commit delete rows
on first use ( insert into xxxxx select .... )
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335436
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

в топку.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335438
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисArioch,то как проверить наличие невидимых данных он найдет - хоть через select count(*), хоть через update ... where ...

да неужели. count(*) уже работает с неявным фильтром.

....если про это не забыли

в случае сервера, который count считает по индексамне троая саму таблицу - вполне могут забыть

а если не забудут - вот и получили случай, когда row-level invisibility резщко замедляет работу
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335442
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисArioch,

в топку.

да GTT вообще в топку

ни разу их не использовал - значит никому они и не нужны
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335444
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

что значит не забудут? Я тебе говорю по опыту. Мне помимо работы с Firebird, приходится одну прогу на Oracle поддерживать (не я её разрабатывал). Там используется RLS, поэтому я знаю о чём говорю. И кстати пару раз эта штука вынесла мне мозг, пока я не догадался, что у них на таблице политика стоит.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335446
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

нет GTT вещь полезная сама по себе, а вот твоё решение не очень. Временные вьюхи тоже отстой.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335511
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

вкусовщина
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335514
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисИ кстати пару раз эта штука вынесла мне мозг, пока я не догадался, что у них на таблице политика стоит

просто прекрасный aргумент в пользу реализаций выборки данных через abuse системы безопасности
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335519
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про аналогичную проверку через update ты, к слову, промолчал

равно ты скоре всего не проводил сравнение на Оракле select count(*) c индексированной большой таблицей с политикой частичной невидимости по неиндексированному полю и без политик вообще
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335520
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сравнение по скорости
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335522
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

тут дело опыта. Я тогда с ораклом мало знаком был. Теперь то в случае чего смотрю, а не висит ли на таблице политика.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335528
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochКак-то это стрёмно, делать временные метаданные

Правильнее казалось бы делать постоянные GTT с привязанной инструкцией по заполнению их нужными данными при первом обращении

Симонов Денисвот твоё решение не очень

ну например вот тут бы она могла пригодиться - http://www.sql.ru/forum/1236092/

другой вопрос что любую задачу можно решать разными инструментами, и не факт что по совокупности этот был бы лучший

во всяком случай на мой взгляд это лучше, чем делать временный изменения метаданных

Хотя.....

Вы же в FB3 ввели разные неймспейсы, так ? Или я путаю ?

Почему бы не ввести неймспейсы connection-local и transaction-local ? тогда вышеупомянутая фишка Постгресса будет повторена без создания специфических расширений SQL-комманд.

Как для SET$CONTEXT есть области видимости "текущее соединение" кажется?
и аналогично сделать с неймспейсами.

create view CURRENT_CONNECTION.TEMPORARY_SELECT AS .....

при дисконнекте - само умирает вместе с неймспейсом
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335536
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисArioch,

тут дело опыта. Я тогда с ораклом мало знаком был. Теперь то в случае чего смотрю, а не висит ли на таблице политика.

Вот именно. Накапливая опыт с любым инструментом - изучаешь где в него заложили грабли.
Но это не аргумент, что сами грабли - это благо.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335542
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

AriochВы же в FB3 ввели разные неймспейсы, так ? Или я путаю ?

кто мы? Я разработкой FB не занимаюсь.

Если ты под неймспейсами подразумеваешь схемы, то нет их в FB 3.0. Дополнительный "неймспейс" сейчас только один - это пакеты.
...
Рейтинг: 0 / 0
Row-Level Security, Row Security Policies
    #39335544
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисArioch,

нет GTT вещь полезная сама по себе, а вот твоё решение не очень. Временные вьюхи тоже отстой.

Временные представления мне самому не нравятся, это костыль.
НО этот самый костыль позволяет делать самую быструю выборку с использованием индексов. Быстрее решения я не знаю!


Постоянные представления аналогичны RLS,
Для сотни ролей руками делать их сложно и работать они будут медленнее, потому что для каждой записи должны разжевать ограничения написанные на сотню ролей.

А временное представление создается с минимальным набором ограничений индивидуально для конкретного пользователя в конкретной сессии. Может получится делать постоянные представления для каждого пользователя, но это надо схемы (пространства имен) под каждого пользователя плодить - в оракле вроде так и есть, посмотрю еще как дальше развивать решение.
...
Рейтинг: 0 / 0
72 сообщений из 72, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Row-Level Security, Row Security Policies
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]