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