Страница 1 из 1

PostgreSQL - права доступа

Добавлено: 19 фев 2013, 15:21
bolotoved
Можно ли в PostgreSQL настроить права пользователей таким образом, чтобы каждый пользователь мог редактировать только те записи, которые создал сам?

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 15:25
novia
какое клиентское приложение?
например, в ArcSDE 10.1 такая функция есть (теперь увидел название раздела)

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 15:35
bolotoved
novia писал(а):какое клиентское приложение?
А это не в самой PostgreSQL настраивается? Я в этом деле совсем чайник.

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 15:59
dab
1. Здесь рецепт http://www.opennet.ru/tips/info/1420.shtml
2. Другой вариант - сделать в каждой таблице служебное поле user_name со значением по умолчанию current_user. Сделать триггеры на delete и update с проверкой совпадения текущего пользователя полю user_name. Если не совпадают - не производить действий с таблицами.
Плюс можно делать из клиента запрос данных созданных конкретным пользователем.

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 16:12
novia
bolotoved писал(а):
novia писал(а):какое клиентское приложение?
А это не в самой PostgreSQL настраивается? Я в этом деле совсем чайник.
в самой)
dab предложил валидацию на уровне триггеров, но было бы неплохо, чтобы не только база выдавала запрет транзакции, а еще и клиентское приложение в принципе не пыталось отправлять сообщения на обновление, в случае, когда объект не принадлежит текущему пользователю.
в экосистеме ArcGIS ownership-based editing поддерживается как со стороны базы, так и со стороны клиента.

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 16:19
Дмитрий Барышников
bolotoved писал(а): А это не в самой PostgreSQL настраивается? Я в этом деле совсем чайник.
В самой базе есть возможность установки прав на поля (колонки). Установка прав на отдельные записи нет. Возможно, это можно сделать через View.

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 16:32
bolotoved
dab писал(а):1. Здесь рецепт http://www.opennet.ru/tips/info/1420.shtml
2. Другой вариант - сделать в каждой таблице служебное поле user_name со значением по умолчанию current_user. Сделать триггеры на delete и update с проверкой совпадения текущего пользователя полю user_name. Если не совпадают - не производить действий с таблицами.
Плюс можно делать из клиента запрос данных созданных конкретным пользователем.
Похоже на то, что надо.
Дмитрий Барышников писал(а):Возможно, это можно сделать через View.
Посмотрю.

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 16:47
Максим Дубинин

Re: PostgreSQL - права доступа

Добавлено: 19 фев 2013, 17:30
bolotoved
Максим Дубинин писал(а):http://gis-lab.info/qa/postgis-row-level.html
Ничто не ново под луною...