Страница 1 из 1
Права доступа на основе области запроса
Добавлено: 03 июн 2012, 21:47
sanyasi
Есть postgis база с устройствами. Требуется ограничить доступ разных пользователей к разным частям этой карты. Например пользователь Москва - может просматривать и редактировать только в своём городе устройства.
Есть ли решения? Можно ли view такой сделать?
Re: Права доступа на основе области запроса
Добавлено: 04 июн 2012, 09:32
rhot
Всё стандартно: создаёте view, назначаете права.
Re: Права доступа на основе области запроса
Добавлено: 04 июн 2012, 10:18
yellow-sky
Стандартно ровно до того момента, пока не появится надобность редактировать эти вьюхи.
По умолчанию все вьюхи в постгресе - только на чтение. Для возможности редактировать их, придется создать еще три
правила DO INSTEAD, для ON INSERT, ON UPDATE, ON DELETE. Вот тут главное не запутаться, и посмотреть как qgis делает эти операции

Re: Права доступа на основе области запроса
Добавлено: 04 июн 2012, 10:32
rhot
yellow-sky, ну это само собой разумеющееся, в Postgres по-другому нельзя

View использует систему правил (rules), т.е. views это упрощённый вариант rules.
Re: Права доступа на основе области запроса
Добавлено: 04 июн 2012, 10:39
yellow-sky
Да, но тут большое значение играет именно написание этих правил

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

Re: Права доступа на основе области запроса
Добавлено: 04 июн 2012, 10:39
sanyasi
Сделал
REATE OR REPLACE VIEW trz AS
SELECT * from devices where st_dwithin(the_geom,'0101000020E6100000B9F30550EA7C414020327E2082874C40', 0.2);
INSERT INTO geometry_columns
(f_table_catalog,f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type)
values
('','public', 'trz', 'the_geom', 2, 4326, 'POINT');
При добавлении таблицы в qgis предлагается выбрать первичный ключ таблицы... без его выбора не добавляется этот view.
Кроме того постгис-менеджер показывает что нет пространственного индекса итд.
Re: Права доступа на основе области запроса
Добавлено: 04 июн 2012, 10:43
yellow-sky
Про первичный ключ - да, это особенность новой версии qgis. В 1.7 можно было не выбирать явно.
Если пространственный индекс есть у родительской таблицы, то все нормально, он будет использоваться.