|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Друзья, собственно сабж планируется как в PostgreSQL? https://www.postgresql.org/docs/current/static/ddl-rowsecurity.html ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 15:07 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HS, я в планах на 4.0 ничего такого не наблюдаю. Хотя изначально там и SQL SECURITY {DEFINER | INVOKER} не планировалось, так что возможно и будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 15:31 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HSДрузья, собственно сабж планируется как в PostgreSQL? https://www.postgresql.org/docs/current/static/ddl-rowsecurity.html бессмысленная фича ИМХО - разработчики баз элементарным разграничением прав не заморачиваются (в силу неграмотности) не вижу профита ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 15:54 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
MaratIsk, если кому-то плевать на безопасность, то это не значит что плевать всем. Фича в принципе полезная, но существует простой workaround: отбираешь права на SELECT у таблиц и делаешь вьюхи с фильтрацией, а потом работаешь только через эти вьюхи. Кстати в этом обходном пути есть даже преимущество, можно обойти в случае необходимости ограничение в ХП, работая в них с таблицей напрямую (ХП конечно надо будет дать права на SELECT). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:05 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Денис, Тут бритва Оккама в полный рост - зачем плодить вьюхи - согласитесь, отдает слегка проктостоматологией, если того же можно достичь безопасностью. Понимаю, что условным 95% это не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:22 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
А почему бы просто в GRANT/REVOKE не сделать для SELECT, UPDATE, INSERT также, как для REFERENCES(<список_полей>)? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:29 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, ты не понимаешь о чём речь. Читай каждое слово Row Level Security ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:31 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, ДЛЯ СТРОК. Вот, к примеру, Марат не видит профита - ему запрещен селект на половину строк таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:32 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HS ... собственно сабж планируется как в PostgreSQL? https://www.postgresql.org/docs/current/static/ddl-rowsecurity.html если такое будет, то будет совсем неплохо. С подобными задачами сталкивался в системах, наворачивали свои обертки. В любом случае, наличие различных вариантов решения задачи - это всегда только плюс. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:34 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HSДЛЯ СТРОКПонятно. Но, ИМХО, это может существенно сказаться на производительности сервера не в лучшую сторону. Если кому-то для отдельной таблицы (например, в БД документооборота) понадобится такая фича, можно вполне обойтись get/set хранимыми процедурами. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:47 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, ... есть два стула ... В любом случае должно сказаться. Обертка - тоже лишние фетчи. Так что выбор между штатными средствами и оберткой. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:53 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Hello, Rdb Dev! You wrote on 6 октября 2016 г. 16:53:12: Rdb Dev> можно вполне обойтись get/set хранимыми процедурами. Чушь. Модератор: cencored ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:53 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HSТак что выбор между штатными средствами и оберткой.Если уж делать такую фичу, то с возможностью её включения/отключения для каждой БД в отдельности через gfix. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:00 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, Включение-выключение уже реализовано через -shutdown ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:02 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
WildSeryВключение-выключение уже реализовано через -shutdownРеализовано через -shutdown включение/отключение чего? Row Level Security или самой базы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:05 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, второй раз повторяю, ты не шаришь. Хоть бы глянул ссылку что ли, прежде чем говорить. Политики создаются отдельно для каждой таблицы через SQL и через него же удаляются (выключаются). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:05 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисПолитики создаются отдельно для каждой таблицы через SQL и через него же удаляются (выключаются).И при этом сервер для любой таблицы проверяет, задана ли политика, а если в базе эта фича не используется совсем, то имеем бесполезный overhead? Не лучше ли для такой базы отключить эту фичу совсем? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:10 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов Денися в планах на 4.0 ничего такого не наблюдаю. Хотя изначально там и SQL SECURITY {DEFINER | INVOKER} не планировалось, так что возможно и будет. Там и mandatory-то фичи уже в глубоком отставании от таймлайна, а ты надеешься, что кто-то совсем левые замержит?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:12 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, феерический бред. По твоей логике триггеры надо тоже запретить совсем, потому что при каждой операции модификации надо проверять не существует ли триггер. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:13 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_devа если в базе эта фича не используется совсем, то имеем бесполезный overhead? Не имеем. Один if булевого флага погоды не сделает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:14 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, не надеюсь. Но мало ли кто-нибудь из Red Soft запилит. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:16 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов Денис, триггеры есть практически всегда, даже если у таблицы всего два поля и одно из них PK. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:17 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНе имеем. Один if булевого флага погоды не сделает.Фетчи из "хранилища" политик не в счет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:20 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, Наличие политик можно проверить на этапе препарирования запроса и запомнить в кеше метаданных. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:24 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_devФетчи из "хранилища" политик не в счет? Конечно нет. Зачем фетчить что-то из "хранилища политик", если для таблицы политика не установлена? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:24 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Друзья, Я что хочу сказать? Утечки последних лет http://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/ отчетливо указывают вектор в жопу в сторону большей безопасности. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:44 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HSв сторону большей безопасности. Пудовый замок на калитке в заборе из полуметрового штакетника смотрится довольно глупо. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 17:47 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HS, на этом твоём говносайте есть подробное описание хотя бы одного инцидента, который мог быть предотвращён использованием RLS? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 18:24 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я не хакер, не знаю как БД целиком сливают, но дампы в нете видел. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 18:49 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
HSне знаю "...а не знаешь - не толкуй." (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 18:52 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_devРеализовано через -shutdown включение/отключение чего? Row Level Security или самой базы? Вот и твоё предложение настолько же смешно. rdb_devWildSery, за ЧСВ МП, моего совсем не видать. :)Да, раздутое. Но там есть чего раздувать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 09:42 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, Плоскому наблюдателю, глядящего на вращающееся колесо перпендикулярно плоскости, вдоль диагонали, кажется, что оно не выполняет никаких полезных действий - ведь местоположение и форма объекта никак не меняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 10:55 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, МП своими ответами намекает, что многие твои сообщения мягко говоря мимо кассы. Делает он это в особой присущей только ему манере, а ты просто этого не понимаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 11:25 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов Денис, с каких это пор распущенность и откровенное хамство стали называться "манерами"? Ты замечал за мной хамство или издевательства в ответах на сообщения, в которых человек явно заблуждается или ошибается? Хамством я отвечаю только на хамство. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 11:40 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, ну здесь он переусердствовал конечно. Но всё же ты не прав в этой теме. Согласен? Сама по себе фича полезная. Её наличие само по себе никак на производительности не скажется. Использование может сказаться, но использовать или нет решение будет за тем кто проектирует БД. З.Ы. Не в коем случае не агитирую за внедрение этой фичи в Firebird. Имеющийся функционал позволяет решить данную задачу, пусть и немного более сложно, но если её сделают не вижу в этом ничего плохого. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 11:51 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисСама по себе фича полезная.Где я написал, что эта фича абсолютно бесполезна? Я лишь написал, что если эту фичу когда-нибудь реализуют, то хорошо бы иметь возможность её отключения для БД. В чем, по твоему, будут храниться политики RLS? В системных таблицах RDB$? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 12:07 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_dev, опять 25. По второму кругу пошли? Эффективность любой фичи зависит от реализации. Или ты априори считаешь, что тот кто будет имплементировать эту фичу настолько криворукий, что не способен сделать это с минимальным оверхедом для случаев когда у таблицы нет политики? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 12:22 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
rdb_devWildSery, на данном форуме это самое "колесо" не вращается в какую-либо сторону, от слова СОВСЕМ.Я ведь тоже самое сказал. Для плоского наблюдателя так и выглядит. Модератор: Почистил слегка, но ещё одно "монопенисуально", "придурки" или указания, как мне или ещё кому вести себя перед тобой - некоторое время read only, а в дальнейшем, возможно, включается режим нулевой терпимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 13:21 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Немного запоздало... На данный момент прорабатываю описание и оформление собственного решения в постгресе, так как не вижу пользы для бизнес приложений от стандартного RLS. RLS - инструмент неудобный и понятный только Администратору БД. При этом администратор БД не может настраивать RLS на этапе создания структуры БД, так как эти правила формулируются после наполнения пользователями базы данных определенных справочников. Основная идея: 1. Создать и распределить БИЗНЕС РОЛИ между пользователями 2. Закрыть доступ всем пользователям ко всем таблицам БД 3. Создать роль - БИЗНЕС АДМИНИСТРАТОРА 4. Создать ПРОМЕЖУТОЧНУЮ ТАБЛИЦУ ДОСТУПА содержащую критерии доступа (значения полей) к записям по всем таблицам БД по БИЗНЕС РОЛЯМ. Предоставить полный (чтение, запись) доступ к данной таблице Бизнес администратору; 5. Создать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ, которая по ПРОМЕЖУТОЧНОЙ ТАБЛИЦЕ создает ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ с уже встроенными ограничениями доступа к записям текущему пользователю 6. Программисту, перед обращением к таблице необходимо вызывать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ и далее обращаться не к таблице, а к ВРЕМЕННОМУ ПРЕДСТАВЛЕНИЮ 7. С закрытием сессии, ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ автоматически удаляется Решение работает без задержек, индексы включаются штатно Есть решаемые нюансы с зависшими временными представлениями в длинных сессиях Думаю, подобно решение можно применять для большинства СУБД, в т.ч. для Firebird, InterBase ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 22:59 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
sereginsereginДумаю, подобно решение можно применять для большинства СУБД, в т.ч. для Firebird, InterBase Нельзя. За динамические метаданные руки отрывают до самой задницы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 23:09 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
А как это работает ? т.е. допустим есть у нас таблица 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-кой какой результат будет у таких запросов ? Явная ошибка или скрытая фильтрация ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:23 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, не знаю как в PG сделали, но в Oracle просто скрытая фильтрация, что правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:26 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
sereginseregin5. Создать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ, которая по ПРОМЕЖУТОЧНОЙ ТАБЛИЦЕ создает ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ с уже встроенными ограничениями доступа к записям текущему пользователю возникает вопрос, не кажется ли вам что это называется 3-tier оно же applicaiton server ? зачем пинками заталкивать трехзвенку в SQL ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:28 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов Денисв Oracle просто скрытая фильтрация, что правильно. чего и опасался правильно? проглатывать ошибки безопансости - это также правильно как try .... except end; ....был еще один сервер, который тоже любил все делать "правильно" и втихую разруливaть ошибки исходя из собственных угадаек "что этот человек мог хотеть" - http://sql-info.de/mysql/gotchas.html ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:32 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, твоё мнение не есть единственно верное. И почему это надо кидать ошибку? Для любого пользователя эта таблица выглядит так как будто записей не предназначенных не для него не существует вовсе. Ну, на самом деле может принести пару часов геморроя. Во-первых RLS это тупой фильтр и никакого обходного пути "админ видит всё" нет, если только вы не задали это в самом фильтре. Конечно админ всегда может удалить или отрубить политику. Во-вторых может захотеться обойти RLS в одной их ХП, без редактирования или удаления политики ни чего не выйдет. З.Ы. Я уже говорил всё тоже самое можно сделать и через вьюху, но немного дольше. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:58 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов Дениствоё мнение не есть единственно верное Как и мнение оракла Симонов ДенисИ почему это надо кидать ошибку? потому что это якобы нарушение security а если же это не имеет отнощшения к security - То и назывтаь это надо как-нибудь типа Dynamic View, Virtual Table Expression и т.д. Симонов ДенисДля любого пользователя эта таблица выглядит так как будто записей не предназначенных не для него не существует вовсе. безусловно и так же программа с try ... except end; для любого пользователя выглядит, как пpограмма без ошибок ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:22 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, какое ещё блин нарушение? Особенно вот здесь Код: sql 1.
Если организовать так как ты хочешь данная фича была бы бесполезной, потому как требовала бы к каждому запросу приписать фильтр аналогичный тому что в политике стоит ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:26 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Ariochпотому что это якобы нарушение security Нет, нарушением security как раз будет выброс ошибки, подтверждающей, что запись CLASS_ID=5 в природе существует. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:30 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovsereginsereginДумаю, подобно решение можно применять для большинства СУБД, в т.ч. для Firebird, InterBase Нельзя. За динамические метаданные руки отрывают до самой задницы. Глянул на документацию Firebird, действительно с временными представлениями как-то там туго. В Postgres простая команда CREATE TEMP VIEW, представление удаляется автоматически при закрытии сессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:37 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Hello, Sereginseregin! You wrote on 26 октября 2016 г. 16:39:06: Sereginseregin> В Postgres простая команда CREATE TEMP VIEW, представление удаляется автоматически при закрытии сессии.а смысл? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:39 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Ariochsereginseregin5. Создать УНИВЕРСАЛЬНУЮ ФУНКЦИЮ, которая по ПРОМЕЖУТОЧНОЙ ТАБЛИЦЕ создает ВРЕМЕННОЕ ПРЕДСТАВЛЕНИЕ с уже встроенными ограничениями доступа к записям текущему пользователю возникает вопрос, не кажется ли вам что это называется 3-tier оно же applicaiton server ? зачем пинками заталкивать трехзвенку в SQL ? Сервер приложения - тормозная прокладка, но это не тема топика. Где Вам удобно, там процедуры и вызывайте. Использование Представления в SQL запросе планировщиком постгреса воспринимается прозрачно, Он подставляет в запрос таблицу напрямую, а условия отбора внутри Представления объединяет с условиями отбора запроса. Индексы выбирает исходя из совокупности условий выборки - выборка выполняется максимально быстро. RLS в постгресе данные фильтрует, но проблема в напиcании универсальных RLS для всех пользователей - они к тому же будут тормозить выборки. А у меня в представлениях ограничения индивидуальные для каждого пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:49 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисЕсли организовать так как ты хочешь данная фича была бы бесполезной потому что она не относится к безопасности, она относится к SELECT/VIEW и назыввать ее security - обман Dimitry SibiryakovНет, нарушением security как раз будет выброс ошибки, подтверждающей, что запись CLASS_ID=5 в природе существует. ого! ну тогда выброс ошибки нарушение PK unique constraint при insert с повторным ID - тоже нарушение безопасности, "подтверждающее, что запись ID=<<PK duplicate>> в природе существует." ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 17:02 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Мимопроходящий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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 18:30 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Ariochпотому что она не относится к безопасности, она относится к SELECT/VIEW и назыввать ее security - обман ИМХО наоборот, важно не сообщать пользователю об ошибке по безопасности. Пользователю не положено (рискованно для безопасности системы) знать, что в БД существуют какие-то еще записи, которые ему недоступны. 1. Пользователь запросил данные - ему предоставили все доступные. Какие еще существуют записи в БД - ему знать не положено. 2. Пользователь решил добавить (изменить, удалить) данные в БД. Сохранились только те, которые ему положено сохранять. По остальным выдалось сообщение: "Данные с такими реквизитами в БД сохранить нельзя!" - о проблемах с безопасностью не должно быть ни слова! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 21:15 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Ariochпотому что она не относится к безопасности, она относится к SELECT/VIEW и назыввать ее security - обман ИМХО наоборот, важно не сообщать пользователю об ошибке по безопасности. Пользователю не положено (рискованно для безопасности системы) знать, что в БД существуют какие-то еще записи, которые ему недоступны. 1. Пользователь запросил данные - ему предоставили все доступные. Какие еще существуют записи в БД - ему знать не положено. 2. Пользователь решил добавить (изменить, удалить) данные в БД. Сохранились только те, которые ему положено сохранять. По остальным выдалось сообщение: "Данные с такими реквизитами в БД сохранить нельзя!" - о проблемах с безопасностью не должно быть ни слова! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 21:19 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
sereginsereginПользователь запросил данные - ему предоставили все доступные. Какие еще существуют записи в БД - ему знать не положено. пользователь вообще не должен запускать IBExpert, а должен работать с пользовательским приложением, которое и обеспечит формирование правильных запросов теми или иными способами (хоть через VIEW и SP, хоть как угодно) если же пользователь может создавать свои запросы ,то как проверить наличие невидимых данных он найдет - хоть через select count(*), хоть через update ... where ... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:48 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch,то как проверить наличие невидимых данных он найдет - хоть через select count(*), хоть через update ... where ... да неужели. count(*) уже работает с неявным фильтром. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:51 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
sereginsereginМимопроходящийHello, Sereginseregin! You wrote on 26 октября 2016 г. 16:39:06: пропущено... а смысл? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Как-то это стрёмно, делать временные метаданные Правильнее казалось бы делать постоянные GTT с привязанной инструкцией по заполнению их нужными данными при первом обращении CREATE GLOBAL TEMPORARY TABLE xxxx (......) on commit delete rows on first use ( insert into xxxxx select .... ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:51 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, в топку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:52 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисArioch,то как проверить наличие невидимых данных он найдет - хоть через select count(*), хоть через update ... where ... да неужели. count(*) уже работает с неявным фильтром. ....если про это не забыли в случае сервера, который count считает по индексамне троая саму таблицу - вполне могут забыть а если не забудут - вот и получили случай, когда row-level invisibility резщко замедляет работу ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:53 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисArioch, в топку. да GTT вообще в топку ни разу их не использовал - значит никому они и не нужны ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:54 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, что значит не забудут? Я тебе говорю по опыту. Мне помимо работы с Firebird, приходится одну прогу на Oracle поддерживать (не я её разрабатывал). Там используется RLS, поэтому я знаю о чём говорю. И кстати пару раз эта штука вынесла мне мозг, пока я не догадался, что у них на таблице политика стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:57 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, нет GTT вещь полезная сама по себе, а вот твоё решение не очень. Временные вьюхи тоже отстой. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 14:59 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов Денис, вкусовщина ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:36 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисИ кстати пару раз эта штука вынесла мне мозг, пока я не догадался, что у них на таблице политика стоит просто прекрасный aргумент в пользу реализаций выборки данных через abuse системы безопасности ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:37 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
про аналогичную проверку через update ты, к слову, промолчал равно ты скоре всего не проводил сравнение на Оракле select count(*) c индексированной большой таблицей с политикой частичной невидимости по неиндексированному полю и без политик вообще ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:39 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
сравнение по скорости ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:40 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, тут дело опыта. Я тогда с ораклом мало знаком был. Теперь то в случае чего смотрю, а не висит ли на таблице политика. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:41 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
AriochКак-то это стрёмно, делать временные метаданные Правильнее казалось бы делать постоянные GTT с привязанной инструкцией по заполнению их нужными данными при первом обращении Симонов Денисвот твоё решение не очень ну например вот тут бы она могла пригодиться - http://www.sql.ru/forum/1236092/ другой вопрос что любую задачу можно решать разными инструментами, и не факт что по совокупности этот был бы лучший во всяком случай на мой взгляд это лучше, чем делать временный изменения метаданных Хотя..... Вы же в FB3 ввели разные неймспейсы, так ? Или я путаю ? Почему бы не ввести неймспейсы connection-local и transaction-local ? тогда вышеупомянутая фишка Постгресса будет повторена без создания специфических расширений SQL-комманд. Как для SET$CONTEXT есть области видимости "текущее соединение" кажется? и аналогично сделать с неймспейсами. create view CURRENT_CONNECTION.TEMPORARY_SELECT AS ..... при дисконнекте - само умирает вместе с неймспейсом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:46 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисArioch, тут дело опыта. Я тогда с ораклом мало знаком был. Теперь то в случае чего смотрю, а не висит ли на таблице политика. Вот именно. Накапливая опыт с любым инструментом - изучаешь где в него заложили грабли. Но это не аргумент, что сами грабли - это благо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:48 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Arioch, AriochВы же в FB3 ввели разные неймспейсы, так ? Или я путаю ? кто мы? Я разработкой FB не занимаюсь. Если ты под неймспейсами подразумеваешь схемы, то нет их в FB 3.0. Дополнительный "неймспейс" сейчас только один - это пакеты. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:52 |
|
Row-Level Security, Row Security Policies
|
|||
---|---|---|---|
#18+
Симонов ДенисArioch, нет GTT вещь полезная сама по себе, а вот твоё решение не очень. Временные вьюхи тоже отстой. Временные представления мне самому не нравятся, это костыль. НО этот самый костыль позволяет делать самую быструю выборку с использованием индексов. Быстрее решения я не знаю! Постоянные представления аналогичны RLS, Для сотни ролей руками делать их сложно и работать они будут медленнее, потому что для каждой записи должны разжевать ограничения написанные на сотню ролей. А временное представление создается с минимальным набором ограничений индивидуально для конкретного пользователя в конкретной сессии. Может получится делать постоянные представления для каждого пользователя, но это надо схемы (пространства имен) под каждого пользователя плодить - в оракле вроде так и есть, посмотрю еще как дальше развивать решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 15:53 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561890]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
others: | 282ms |
total: | 458ms |
0 / 0 |