Права доступа на основе области запроса
-
- Активный участник
- Сообщения: 115
- Зарегистрирован: 18 ноя 2009, 11:31
- Репутация: 0
Права доступа на основе области запроса
Есть postgis база с устройствами. Требуется ограничить доступ разных пользователей к разным частям этой карты. Например пользователь Москва - может просматривать и редактировать только в своём городе устройства.
Есть ли решения? Можно ли view такой сделать?
Есть ли решения? Можно ли view такой сделать?
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Права доступа на основе области запроса
Всё стандартно: создаёте view, назначаете права.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Права доступа на основе области запроса
Стандартно ровно до того момента, пока не появится надобность редактировать эти вьюхи.
По умолчанию все вьюхи в постгресе - только на чтение. Для возможности редактировать их, придется создать еще три правила DO INSTEAD, для ON INSERT, ON UPDATE, ON DELETE. Вот тут главное не запутаться, и посмотреть как qgis делает эти операции
По умолчанию все вьюхи в постгресе - только на чтение. Для возможности редактировать их, придется создать еще три правила DO INSTEAD, для ON INSERT, ON UPDATE, ON DELETE. Вот тут главное не запутаться, и посмотреть как qgis делает эти операции
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Права доступа на основе области запроса
yellow-sky, ну это само собой разумеющееся, в Postgres по-другому нельзя View использует систему правил (rules), т.е. views это упрощённый вариант rules.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Права доступа на основе области запроса
Да, но тут большое значение играет именно написание этих правил . Потому как не зная какие будут запросы на обновление и добавление, правильно оформить их, не получится. Профайлер в руки, так сказать, и вперед
-
- Активный участник
- Сообщения: 115
- Зарегистрирован: 18 ноя 2009, 11:31
- Репутация: 0
Re: Права доступа на основе области запроса
Сделал
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.
Кроме того постгис-менеджер показывает что нет пространственного индекса итд.
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.
Кроме того постгис-менеджер показывает что нет пространственного индекса итд.
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Права доступа на основе области запроса
Про первичный ключ - да, это особенность новой версии qgis. В 1.7 можно было не выбирать явно.
Если пространственный индекс есть у родительской таблицы, то все нормально, он будет использоваться.
Если пространственный индекс есть у родительской таблицы, то все нормально, он будет использоваться.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей