Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Мандатные метки в PostgresSQL / 25 сообщений из 33, страница 1 из 2
15.12.2006, 14:26
    #34203219
vald2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
Добрый день!

Приходится работать с СУБД под названием "Линтер-ВС", она же PostgreSQL.
Линтер поддерживает механизм мандатных меток, разграничения доступа к таблице по записям и т.д.
Поддерживает ли PostgreSQL мандатное разграничение?
...
Рейтинг: 0 / 0
15.12.2006, 16:24
    #34203782
ездун
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
vald2006мандатное разграничение
Что сиё есть?
...
Рейтинг: 0 / 0
15.12.2006, 17:36
    #34204119
ЮВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
ездун vald2006мандатное разграничение
Что сиё есть?

Мандатный метод контроля доступа подразумевает, что хранимая в БД информация имеет метки доступа на чтение и на запись. Например, некоторое поле записи может иметь метку доступа на чтение "Общедоступное", "ДСП" (Для служебного пользования), "Секретное" и т. п.
С другой стороны, каждый пользователь тоже получает уровень доступа к информации на чтение и на запись. Например, топ-менеджер компании может иметь наивысший уровень доступа (просмотр и запись общедоступной, секретной и т. п. ) информации, а простой оператор - только доступ к общедоступной информации.
Это означает, например, что пользователь с уровнем доступа на чтение "Секретно" может читать информацию с любой меткой доступа не выше секретной и с уровнем доступа "ДСП" на запись - вносить в БД информацию с метками доступа не выше ДСП.
В операциях манипулирования данных (SELECT, UPDATE, DELETE, INSERT) данные пользователю предоставляются в соответствии с его уровнем доступа, т. е. пользователь с уровнем доступа "Обычный" не сможет прочитать секретную информацию, а, скажем, топ-менеджер с уровнем доступа "Неограниченный" - сможет.
При этом код завершения "Нет данных" не выдается, чтобы простой пользователь не смог догадаться, что в БД есть секретные данные, а выдается код завершения "Нарушение мандатного доступа".
...
Рейтинг: 0 / 0
16.12.2006, 00:55
    #34204660
Rafter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
vald2006Добрый день!

Приходится работать с СУБД под названием "Линтер-ВС", она же PostgreSQL.
Линтер поддерживает механизм мандатных меток, разграничения доступа к таблице по записям и т.д.
Поддерживает ли PostgreSQL мандатное разграничение?
Однозначно поддерживает. Мы это в своих проектах уже реализовали. Работаете на МинОбр?
...
Рейтинг: 0 / 0
16.12.2006, 22:51
    #34205308
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
Даже стандартные средства SQL позволяют разграничивать доступ на уровне таблиц. А на уровне строк и колонок легко можно организовать с помощью представлений/правил. Хотя в Линтере возможно уже что-то сделанно свое - не знаю, не имел счастья с ним работать :-)
Но! Если разграничение на уровне колонок особых проблемм не несет ( например, в самом постгресе pg_user это представление, в котором от посторонних глаз закрыты пароли), то на уровне строк могут возникнуть "проблеммки" в целом со схемой БД. Когда например доступная запись в одной таблице ссылаеться на существующую, но для данного пользователя не доступную запись в другой таблице (т.е. вроде как ссылочная целостность есть, а вроде как для этого пользователя и нет). В ообщем, нужны дополнительные усилия чтобы такие ситуации отдельно обыгрывать или избегать их при проектировании.
...
Рейтинг: 0 / 0
18.12.2006, 09:05
    #34206331
vald2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
Rafter
Однозначно поддерживает. Мы это в своих проектах уже реализовали. Работаете на МинОбр?

Скажите пожалуйста есть ли какой-нибудь механизм фильрации записей с мандатными метками, к примеру у пользователя доступ {1,0}, в таблице записи с метками {0,0} и {1,0}, необходимо получить все записи метка которых равна уровню доступа пользователя.

Я понимаю что это можно зделать обычным SELECT * FROM TABLE WHERE MACLABEL = {1,0}
но вставлять это в кажном срипте просто невозможно...
...
Рейтинг: 0 / 0
18.12.2006, 09:16
    #34206347
vald2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
JelisДаже стандартные средства SQL позволяют разграничивать доступ на уровне таблиц. А на уровне строк и колонок легко можно организовать с помощью представлений/правил.

В общем-то так и пытаюсь сделать....
...
Рейтинг: 0 / 0
18.12.2006, 15:01
    #34207626
pavelvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
У меня маленькая просьбо ко всем. Если имеется в виду Линтер-ВС, который PostgreSQL, то не сокращайте название до Линтер. Пожалуйста, пишите всегда Линтер-ВС. Дабы не усугублять путаницу между названиями продуктов Линтер-ВС и ЛИНТЕР .
...
Рейтинг: 0 / 0
18.12.2006, 19:01
    #34208621
ЮВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
JelisДаже стандартные средства SQL позволяют разграничивать доступ на уровне таблиц. А на уровне строк и колонок легко можно организовать с помощью представлений/правил.

Для не больших (по объему) и не сложных по уровням доступа БД, действительно, можно обойтись набором представлений.
В cложной БД это затруднительно.
Пусть в таблице есть N столбцов, в которых используются метки доступа в среднем M уровней.
Тогда может понадобиться создать NxM представлений.
А если таких таблиц, скажем, P, то и представлений будет PxNxM.
Причем это статичные (заранее спроектированные и созданные) представления, как правило, встроенные в приложения, которые требуют администрирования по доступу к ним разных пользователей.
Если в процессе работы с БД надо динамически менять уровни доступа к информации (например, создавать новые), то синхронно надо создавать и соответствующие представления, после чего каким-то образом встраивать их в приложения.

В реальных системах, как правило, применяется комбинированный подход.
...
Рейтинг: 0 / 0
18.12.2006, 20:29
    #34208791
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
ЮВ
Для не больших (по объему) и не сложных по уровням доступа БД, действительно, можно обойтись набором представлений.
В cложной БД это затруднительно.


Вообщем - да. Только, я, всё таки, сказал бы, что не в "сложной БД", а именно в "БД со сложными правилами конроля доступа". И от объёма самой базы это не сильно зависит.

ЮВ
Пусть в таблице есть N столбцов, в которых используются метки доступа в среднем M уровней.
Тогда может понадобиться создать NxM представлений.
А если таких таблиц, скажем, P, то и представлений будет PxNxM.
Причем это статичные (заранее спроектированные и созданные) представления, как правило, встроенные в приложения, которые требуют администрирования по доступу к ним разных пользователей.
Если в процессе работы с БД надо динамически менять уровни доступа к информации (например, создавать новые), то синхронно надо создавать и соответствующие представления, после чего каким-то образом встраивать их в приложения.

В реальных системах, как правило, применяется комбинированный подход.

Зачем городить отдельное представление на каждый "уровень"? Можно просто ограничивать в представление чего оно выдает на основании либо каких-то реальных данных в таблице (например, инфу по региону могут смотреть только работники этого региона), либо на основании какого-то определенного для этой записи уровня доступа (т.е. как хочет vlad2006)

Код: plaintext
1.
2.
3.
4.
   CREATE VIEW Super_Tank_v AS
   SELECT st.*
   FROM Super_Tank AS st
   WHERE st.security_level <= getUserSecurityLevel(CURRENT_USER);
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
15.02.2017, 15:04
    #39404981
lomehorro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
Пытаюсь зайти через командную строку: sudo -u test psql
Пишут: Ошибка получения мандатных атрибутов для пользователя "test"

Затем на сервере присваиваю пользователю "test" мандатную метку, к примеру {1,0}, далее пытаюсь так же зайти и мне пишут, что такой роли нет, хотя она есть, может кто помочь разобраться?
...
Рейтинг: 0 / 0
15.02.2017, 16:04
    #39405058
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
lomehorroПытаюсь зайти через командную строку: sudo -u test psql
Пишут: Ошибка получения мандатных атрибутов для пользователя "test"

Затем на сервере присваиваю пользователю "test" мандатную метку, к примеру {1,0}, далее пытаюсь так же зайти и мне пишут, что такой роли нет, хотя она есть, может кто помочь разобраться?

Что это за "мандатные атрибуты"? от слова "мандат"?

Где в документации по PostgreSQL почитать об этом?
...
Рейтинг: 0 / 0
15.02.2017, 16:26
    #39405085
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
Ролг Хупин
Что это за "мандатные атрибуты"? от слова "мандат"?

Где в документации по PostgreSQL почитать об этом?
Мандатные политики(или любые другие) в самой БАЗЕ - это читать тут
В командной же строчке, если цель запустить psql именно от конкретного
пользователя linux: test
Код: plaintext
1.
2.
3.
4.
5.
6.
sudo bash
<passwd>(пароль суперюзера linux)
su test
psql -U <databaseuser>, -h <ip> -p <port> <databasename>
<passwd>(пароль пользоваатепля БД)
#
...
Рейтинг: 0 / 0
15.02.2017, 18:01
    #39405182
lomehorro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
ОКТОГЕН, вообще, моя цель настроить мандатный доступ. Я создал пользователя, создал таблицу, присвоил метки и пользователю и таблице, а потом хотел зайти за этого пользователя через командную строку и проверить, как работают метки.
...
Рейтинг: 0 / 0
15.02.2017, 18:02
    #39405183
lomehorro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
ОКТОГЕН, попробую сделать то, что вы посоветовали. Просто с этим впервые сталкиваюсь и не плохо понимаю, что и как нужно настраивать.
...
Рейтинг: 0 / 0
15.02.2017, 19:27
    #39405232
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
ОКТОГЕНРолг ХупинЧто это за "мандатные атрибуты"? от слова "мандат"?

Где в документации по PostgreSQL почитать об этом?
Мандатные политики(или любые другие) в самой БАЗЕ - это читать тут
В командной же строчке, если цель запустить psql именно от конкретного
пользователя linux: test
Код: plaintext
1.
2.
3.
4.
5.
6.
sudo bash
<passwd>(пароль суперюзера linux)
su test
psql -U <databaseuser>, -h <ip> -p <port> <databasename>
<passwd>(пароль пользоваатепля БД)
#


спасибо, но я не нашел там слово мандат, и части его тоже. Пытался mand, manda, mandat - нету.
Не понятен смысл вводить в заблуждение юзеров терминами, взятыми из других серверов
...
Рейтинг: 0 / 0
16.02.2017, 08:29
    #39405417
big-trot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
lomehorro,

Поясните за ОС, с которой вы работаете? Понятия "мандатные метки, атрибуты" в настоящее время присущи ОС МСВС, АS SE и другие.
...
Рейтинг: 0 / 0
16.02.2017, 11:57
    #39405599
li_malina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
lomehorro,

Я занималась тестированием мандатных меток на ОС astra linux со встроенным Postgres
Мы так и не перешли на использование мандатных меток -поэтому консультировать почему не работает не могу-поскольку этим сейчас не занимаюсь и подзабыла как там что делается
но проверяла я так -может вам поможет эта информация
Установила на сервере пакет тестирования мандатного доступа postgresql-se-test-9.3
В результате этого пакета создается тестовый кластер Postgresql,создаются пользователи OC и выполняется тестирование мандатного доступа на уровне базы Postgresql,потом в конце тестирования база удаляется)
Изменила командный файл на тестирования(закомментировала строку удаления базы).Тестирование прошло нормально!Я создала в этой базе рядового пользователя и нормально к ней подключилась).восстановила свою базу.Подключилась к базе рядовым пользователем loader успешно!
это результат достигнут я думаю выполнением команд

setfacl -m u:postgres:rx /etc/parsec/macdb
setfacl -m u:postgres:rx /etc/parsec/capdb
setfacl -d -m u:postgres:r /etc/parsec/macdb
setfacl -d -m u:postgres:r /etc/parsec/capdb
setfacl -R -m u:postgres:r /etc/parsec/macdb/*
setfacl -R -m u:postgres:r /etc/parsec/capdb/*

мандатный доступ подразумевает что пользователь должен быть в OC и СУБД
как только я удалила пользователя из OC сразу возникла ошибка нарушение доступа к мандатным атрибутам и пользователь не смог законнектиться в базу!
...
Рейтинг: 0 / 0
16.02.2017, 12:15
    #39405615
lomehorro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
big-trot, ОС AstraLinux_SE_1.5 и СУБД PostgreSQL 9.4
...
Рейтинг: 0 / 0
16.02.2017, 12:23
    #39405619
lomehorro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
li_malina, спасибо за совет с тестированием.

Как я понимаю, нужно сначала завести пользователя в ОС, затем в Postgresql завести новую роль (выбрав созданного пользователя среди локальных) и при вводе команды sudo -u <имя пользователя> psql должно приконектиться, верно? И ещё, нужно ли что-то менять в конфигурационных файлах (например в postgresql.conf)?
...
Рейтинг: 0 / 0
16.02.2017, 14:03
    #39405730
big-trot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
lomehorro,

1. Завести пользователя в ОС
2. С точно таким же именем завести пользователя в СУБД
3. Выполнить команды li_malina (см. выше)
4. Еще надо одну команду выполнить:
usermod -a -G shadow postgres
...
Рейтинг: 0 / 0
16.02.2017, 15:05
    #39405816
lomehorro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
big-trot,

Завёл пользователя в ОС
Завёл такого же пользователя в СУБД

выполнил команды:
setfacl -m u:postgres:rx /etc/parsec/macdb
setfacl -m u:postgres:rx /etc/parsec/capdb
setfacl -d -m u:postgres:r /etc/parsec/macdb
setfacl -d -m u:postgres:r /etc/parsec/capdb
setfacl -R -m u:postgres:r /etc/parsec/macdb/*
setfacl -R -m u:postgres:r /etc/parsec/capdb/*

затем команду: usermod -a -G shadow postgres

пытаюсь войти:

sudo -u <имя пользователя> psql

Мне пишут: psql: Сбой ошибка получения мандатных атрибутов на сервере для пользователя <>

в чём может быть проблема?
...
Рейтинг: 0 / 0
16.02.2017, 17:35
    #39406000
li_malina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
lomehorro,

У меня была такая проблема заходили только пользователи у которых в PG было право SUPERUSER
Я все решила тем что написала выше -может Вам следует все снести и переустановить вновь и делать так как я написала
...
Рейтинг: 0 / 0
16.02.2017, 17:41
    #39406004
li_malina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
lomehorro,

еще я вспомнила но это уже относится к связи мандатные атрибуты kerberos и postgres что пользователей заводить маленькими буквами
...
Рейтинг: 0 / 0
16.02.2017, 18:02
    #39406034
li_malina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мандатные метки в PostgresSQL
lomehorro,

попробуйте коннектиться стандартной командой
psql -h хост -p port -d база -U user(пробуйте когда нет user в OC)
потом когда он есть
потому что мандатный доступ работает когда заходишь из pgadmin(как я поняла перед заходом в PG проверяется наличие пользователя в ОС) А вы думаете как я поняла раз вы залогировались в ОС пользователем то и зайдете в PG) По моему это не так-но я могу ошибаться
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Мандатные метки в PostgresSQL / 25 сообщений из 33, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]