|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
Добрый день! Приходится работать с СУБД под названием "Линтер-ВС", она же PostgreSQL. Линтер поддерживает механизм мандатных меток, разграничения доступа к таблице по записям и т.д. Поддерживает ли PostgreSQL мандатное разграничение? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2006, 14:26 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
vald2006мандатное разграничение Что сиё есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2006, 16:24 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
ездун vald2006мандатное разграничение Что сиё есть? Мандатный метод контроля доступа подразумевает, что хранимая в БД информация имеет метки доступа на чтение и на запись. Например, некоторое поле записи может иметь метку доступа на чтение "Общедоступное", "ДСП" (Для служебного пользования), "Секретное" и т. п. С другой стороны, каждый пользователь тоже получает уровень доступа к информации на чтение и на запись. Например, топ-менеджер компании может иметь наивысший уровень доступа (просмотр и запись общедоступной, секретной и т. п. ) информации, а простой оператор - только доступ к общедоступной информации. Это означает, например, что пользователь с уровнем доступа на чтение "Секретно" может читать информацию с любой меткой доступа не выше секретной и с уровнем доступа "ДСП" на запись - вносить в БД информацию с метками доступа не выше ДСП. В операциях манипулирования данных (SELECT, UPDATE, DELETE, INSERT) данные пользователю предоставляются в соответствии с его уровнем доступа, т. е. пользователь с уровнем доступа "Обычный" не сможет прочитать секретную информацию, а, скажем, топ-менеджер с уровнем доступа "Неограниченный" - сможет. При этом код завершения "Нет данных" не выдается, чтобы простой пользователь не смог догадаться, что в БД есть секретные данные, а выдается код завершения "Нарушение мандатного доступа". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2006, 17:36 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
vald2006Добрый день! Приходится работать с СУБД под названием "Линтер-ВС", она же PostgreSQL. Линтер поддерживает механизм мандатных меток, разграничения доступа к таблице по записям и т.д. Поддерживает ли PostgreSQL мандатное разграничение? Однозначно поддерживает. Мы это в своих проектах уже реализовали. Работаете на МинОбр? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2006, 00:55 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
Даже стандартные средства SQL позволяют разграничивать доступ на уровне таблиц. А на уровне строк и колонок легко можно организовать с помощью представлений/правил. Хотя в Линтере возможно уже что-то сделанно свое - не знаю, не имел счастья с ним работать :-) Но! Если разграничение на уровне колонок особых проблемм не несет ( например, в самом постгресе pg_user это представление, в котором от посторонних глаз закрыты пароли), то на уровне строк могут возникнуть "проблеммки" в целом со схемой БД. Когда например доступная запись в одной таблице ссылаеться на существующую, но для данного пользователя не доступную запись в другой таблице (т.е. вроде как ссылочная целостность есть, а вроде как для этого пользователя и нет). В ообщем, нужны дополнительные усилия чтобы такие ситуации отдельно обыгрывать или избегать их при проектировании. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2006, 22:51 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
Rafter Однозначно поддерживает. Мы это в своих проектах уже реализовали. Работаете на МинОбр? Скажите пожалуйста есть ли какой-нибудь механизм фильрации записей с мандатными метками, к примеру у пользователя доступ {1,0}, в таблице записи с метками {0,0} и {1,0}, необходимо получить все записи метка которых равна уровню доступа пользователя. Я понимаю что это можно зделать обычным SELECT * FROM TABLE WHERE MACLABEL = {1,0} но вставлять это в кажном срипте просто невозможно... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2006, 09:05 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
JelisДаже стандартные средства SQL позволяют разграничивать доступ на уровне таблиц. А на уровне строк и колонок легко можно организовать с помощью представлений/правил. В общем-то так и пытаюсь сделать.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2006, 09:16 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
У меня маленькая просьбо ко всем. Если имеется в виду Линтер-ВС, который PostgreSQL, то не сокращайте название до Линтер. Пожалуйста, пишите всегда Линтер-ВС. Дабы не усугублять путаницу между названиями продуктов Линтер-ВС и ЛИНТЕР . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2006, 15:01 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
JelisДаже стандартные средства SQL позволяют разграничивать доступ на уровне таблиц. А на уровне строк и колонок легко можно организовать с помощью представлений/правил. Для не больших (по объему) и не сложных по уровням доступа БД, действительно, можно обойтись набором представлений. В cложной БД это затруднительно. Пусть в таблице есть N столбцов, в которых используются метки доступа в среднем M уровней. Тогда может понадобиться создать NxM представлений. А если таких таблиц, скажем, P, то и представлений будет PxNxM. Причем это статичные (заранее спроектированные и созданные) представления, как правило, встроенные в приложения, которые требуют администрирования по доступу к ним разных пользователей. Если в процессе работы с БД надо динамически менять уровни доступа к информации (например, создавать новые), то синхронно надо создавать и соответствующие представления, после чего каким-то образом встраивать их в приложения. В реальных системах, как правило, применяется комбинированный подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2006, 19:01 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
ЮВ Для не больших (по объему) и не сложных по уровням доступа БД, действительно, можно обойтись набором представлений. В cложной БД это затруднительно. Вообщем - да. Только, я, всё таки, сказал бы, что не в "сложной БД", а именно в "БД со сложными правилами конроля доступа". И от объёма самой базы это не сильно зависит. ЮВ Пусть в таблице есть N столбцов, в которых используются метки доступа в среднем M уровней. Тогда может понадобиться создать NxM представлений. А если таких таблиц, скажем, P, то и представлений будет PxNxM. Причем это статичные (заранее спроектированные и созданные) представления, как правило, встроенные в приложения, которые требуют администрирования по доступу к ним разных пользователей. Если в процессе работы с БД надо динамически менять уровни доступа к информации (например, создавать новые), то синхронно надо создавать и соответствующие представления, после чего каким-то образом встраивать их в приложения. В реальных системах, как правило, применяется комбинированный подход. Зачем городить отдельное представление на каждый "уровень"? Можно просто ограничивать в представление чего оно выдает на основании либо каких-то реальных данных в таблице (например, инфу по региону могут смотреть только работники этого региона), либо на основании какого-то определенного для этой записи уровня доступа (т.е. как хочет vlad2006) Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2006, 20:29 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
Пытаюсь зайти через командную строку: sudo -u test psql Пишут: Ошибка получения мандатных атрибутов для пользователя "test" Затем на сервере присваиваю пользователю "test" мандатную метку, к примеру {1,0}, далее пытаюсь так же зайти и мне пишут, что такой роли нет, хотя она есть, может кто помочь разобраться? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 15:04 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
lomehorroПытаюсь зайти через командную строку: sudo -u test psql Пишут: Ошибка получения мандатных атрибутов для пользователя "test" Затем на сервере присваиваю пользователю "test" мандатную метку, к примеру {1,0}, далее пытаюсь так же зайти и мне пишут, что такой роли нет, хотя она есть, может кто помочь разобраться? Что это за "мандатные атрибуты"? от слова "мандат"? Где в документации по PostgreSQL почитать об этом? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 16:04 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
Ролг Хупин Что это за "мандатные атрибуты"? от слова "мандат"? Где в документации по PostgreSQL почитать об этом? Мандатные политики(или любые другие) в самой БАЗЕ - это читать тут В командной же строчке, если цель запустить psql именно от конкретного пользователя linux: test Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 16:26 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
ОКТОГЕН, вообще, моя цель настроить мандатный доступ. Я создал пользователя, создал таблицу, присвоил метки и пользователю и таблице, а потом хотел зайти за этого пользователя через командную строку и проверить, как работают метки. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 18:01 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
ОКТОГЕН, попробую сделать то, что вы посоветовали. Просто с этим впервые сталкиваюсь и не плохо понимаю, что и как нужно настраивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 18:02 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
ОКТОГЕНРолг ХупинЧто это за "мандатные атрибуты"? от слова "мандат"? Где в документации по PostgreSQL почитать об этом? Мандатные политики(или любые другие) в самой БАЗЕ - это читать тут В командной же строчке, если цель запустить psql именно от конкретного пользователя linux: test Код: plaintext 1. 2. 3. 4. 5. 6.
спасибо, но я не нашел там слово мандат, и части его тоже. Пытался mand, manda, mandat - нету. Не понятен смысл вводить в заблуждение юзеров терминами, взятыми из других серверов ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2017, 19:27 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
lomehorro, Поясните за ОС, с которой вы работаете? Понятия "мандатные метки, атрибуты" в настоящее время присущи ОС МСВС, АS SE и другие. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 08:29 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
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 сразу возникла ошибка нарушение доступа к мандатным атрибутам и пользователь не смог законнектиться в базу! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 11:57 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
big-trot, ОС AstraLinux_SE_1.5 и СУБД PostgreSQL 9.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 12:15 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
li_malina, спасибо за совет с тестированием. Как я понимаю, нужно сначала завести пользователя в ОС, затем в Postgresql завести новую роль (выбрав созданного пользователя среди локальных) и при вводе команды sudo -u <имя пользователя> psql должно приконектиться, верно? И ещё, нужно ли что-то менять в конфигурационных файлах (например в postgresql.conf)? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 12:23 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
lomehorro, 1. Завести пользователя в ОС 2. С точно таким же именем завести пользователя в СУБД 3. Выполнить команды li_malina (см. выше) 4. Еще надо одну команду выполнить: usermod -a -G shadow postgres ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 14:03 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
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: Сбой ошибка получения мандатных атрибутов на сервере для пользователя <> в чём может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 15:05 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
lomehorro, У меня была такая проблема заходили только пользователи у которых в PG было право SUPERUSER Я все решила тем что написала выше -может Вам следует все снести и переустановить вновь и делать так как я написала ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 17:35 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
lomehorro, еще я вспомнила но это уже относится к связи мандатные атрибуты kerberos и postgres что пользователей заводить маленькими буквами ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 17:41 |
|
Мандатные метки в PostgresSQL
|
|||
---|---|---|---|
#18+
lomehorro, попробуйте коннектиться стандартной командой psql -h хост -p port -d база -U user(пробуйте когда нет user в OC) потом когда он есть потому что мандатный доступ работает когда заходишь из pgadmin(как я поняла перед заходом в PG проверяется наличие пользователя в ОС) А вы думаете как я поняла раз вы залогировались в ОС пользователем то и зайдете в PG) По моему это не так-но я могу ошибаться ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 18:02 |
|
|
start [/forum/topic.php?fid=53&msg=39405730&tid=1995362]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 169ms |
0 / 0 |