<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: PostgreSQL: безопасность на уровне строк (row level security)</title>
    <link>https://89.19.215.112/openforum/vsluhforumID3/37492.html</link>
    <description>Некоторые базы данных, такие как MSSQL и MySQL5, имеют специальные механизмы для разграничения доступа &lt;br&gt;пользователей к различным ресурсам БД вплоть до ячеек таблиц. PostgreSQL не нуждается в таких излишествах. &lt;br&gt;На практике обычно требуется разграничить доступ на уровне строк. Для того, что бы сделать это, есть простой способ, &lt;br&gt;основанный на использовании представлений, правил и функции current_user() или эквивалентного ей &lt;br&gt;ключевого слова user.&lt;br&gt;&lt;br&gt;Создадим любую таблицу от имени &apos;postgres&apos;, в которой обязательно должно присутствовать поле &lt;br&gt;для хранения логина:&lt;br&gt;&lt;br&gt;   CREATE TABLE table1&lt;br&gt;   (&lt;br&gt;     fio text NOT NULL,&lt;br&gt;     name text,&lt;br&gt;     something integer,&lt;br&gt;     login text,&lt;br&gt;     CONSTRAINT table1_pkey PRIMARY KEY (fio)&lt;br&gt;   ) &lt;br&gt;   WITHOUT OIDS;&lt;br&gt;   ALTER TABLE table1 OWNER TO postgres;&lt;br&gt;&lt;br&gt;Ни один пользователь не имеет никаких привилегий на эту таблицу.&lt;br&gt;&lt;br&gt;Создадим представление, и дадим необходимым пользователям некоторые привилегии:&lt;br&gt;&lt;br&gt;   CREATE OR REPLACE VIEW table1v AS &lt;br&gt;    SELECT table1.fio, tabl</description>

<item>
    <title>PostgreSQL: безопасность на уровне строк (row level security... (illi)</title>
    <link>https://89.19.215.112/openforum/vsluhforumID3/37492.html#6</link>
    <pubDate>Wed, 13 Jun 2007 08:18:59 GMT</pubDate>
    <description>&amp;gt;ACL - это лист доступа? Тогда ты совсем погорячился ^_^ Привилегии можно &lt;br&gt;&amp;gt;поставить на то, что имеет OID. Строки в pg OID-а не &lt;br&gt;&amp;gt;имеют. &lt;br&gt;&lt;br&gt;Ну, это не совсем так:&lt;br&gt;uadm=# create table test (tt int4) WITH OIDS;&lt;br&gt;CREATE TABLE&lt;br&gt;uadm=# INSERT INTO test VALUES (11);&lt;br&gt;INSERT 2031626 1&lt;br&gt;uadm=# select * from test;&lt;br&gt; tt&lt;br&gt;----&lt;br&gt; 11&lt;br&gt;&lt;br&gt;uadm=# select oid from test;&lt;br&gt;   oid&lt;br&gt;---------&lt;br&gt; 2031626&lt;br&gt;Просто _СЕЙЧАС_ они не имеют oid-а в созданных по дефолту таблицах.&lt;br&gt;Раньше(не помню, до какой версии) дефолтом создавались с OID.&lt;br&gt;И - oid по &quot;select *&quot; не возвращается.</description>
</item>

<item>
    <title>PostgreSQL: безопасность на уровне строк (row level security... (FLUF)</title>
    <link>https://89.19.215.112/openforum/vsluhforumID3/37492.html#5</link>
    <pubDate>Sun, 27 May 2007 09:07:50 GMT</pubDate>
    <description>ACL - это лист доступа? Тогда ты совсем погорячился ^_^ Привилегии можно поставить на то, что имеет OID. Строки в pg OID-а не имеют. И потому привилегии на конкретную строку поставить нелься. А в других БД можно. Но в pg это и не нужно, потому что это можно реализовать через вьюшки и всё прекрасно и надёжно.&lt;br&gt;Идею я взял с забугорного сайта. Там чел сдела так, что бы юзверь не мог удалить из таблицы не свои строки. Я прибавил к этому, что бы он их и прочитать (select) не мог.</description>
</item>

<item>
    <title>PostgreSQL: безопасность на уровне строк (row level security... (mistatog)</title>
    <link>https://89.19.215.112/openforum/vsluhforumID3/37492.html#4</link>
    <pubDate>Thu, 24 May 2007 05:45:19 GMT</pubDate>
    <description>Спасибо. Продолжаю, дальше изучать замечательную СУБД postgres</description>
</item>

<item>
    <title>PostgreSQL: безопасность на уровне строк (row level security... (Zert)</title>
    <link>https://89.19.215.112/openforum/vsluhforumID3/37492.html#3</link>
    <pubDate>Wed, 23 May 2007 06:37:27 GMT</pubDate>
    <description>Да Вы сами практически всё написали, а для привязки к этой схеме (одна строка - один юзер) групп пользователей надо добавить лишь дополнительное поле под группу и модифицировать правила под это дело. А с acl я немного погорячился, это, пожалуй, даст увеличение сложности сущностей без сопоставимых результатов.</description>
</item>

<item>
    <title>PostgreSQL: безопасность на уровне строк (row level security... (mistatog)</title>
    <link>https://89.19.215.112/openforum/vsluhforumID3/37492.html#2</link>
    <pubDate>Wed, 23 May 2007 03:13:18 GMT</pubDate>
    <description>А можете поподробнее написать про acl и группы безопасности, сейчас как раз на постгресе делаю небольшой проект, очень понадобилось бы.</description>
</item>

<item>
    <title>PostgreSQL: безопасность на уровне строк (row level security) (Zert)</title>
    <link>https://89.19.215.112/openforum/vsluhforumID3/37492.html#1</link>
    <pubDate>Tue, 22 May 2007 05:36:24 GMT</pubDate>
    <description>Более уместным будет acl или группы доступа.</description>
</item>

</channel>
</rss>
