powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ALTER TABLE table_name SET MAC TO '{0, 0}';
10 сообщений из 10, страница 1 из 1
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #34636425
madvet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg_dump'ом создаю дамп базы данных:
Код: plaintext
pg_dump -U user_name -C db_name > /base/db_name
Получается текстовый файл, смотрю в него, после создания каждой таблицы строка:
Код: plaintext
ALTER TABLE table_name SET MAC TO '{0, 0}';
Что это такое?
Версия сервера 7.4
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #34651974
madvet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался - мандатные метки. А MAC - это, видимо, Mandatory Access Control
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39178901
Valentine_vaia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перевожу проект с версии 7.4 на версию 9.2
БД развертывается из скриптов.

Последовательно выполняется создание таблицы и сразу после этого обнуление мандатных меток.
Код: sql
1.
2.
...
ALTER TABLE table_name SET MAC TO '{0, 0}';


Под 9.2 ругается
ОШИБКА: нет доступа к отношению "название таблицы"

Подскажите, как получить доступ для данного ALTER или чем заменить его в версии 9.2?
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39179066
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentine_vaia,
madvetMAC - это, видимо, Mandatory Access Control
это расширение конкретного форка постргесса (МСВС?)
в ванильной сборке http://www.postgresql.org/ такого нет, как нет и такой команды.

Если такой контроль доступности записей вам не нужен, то просто удалите такие команды из дампа.
Если нужен и в 9.2.... то тогда только к разработчикам форка, а вдруг у них есть и для этой версии.

В 9.5 можно частично можно заменить на row level security ( http://www.postgresql.org/docs/current/static/ddl-rowsecurity.html)
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39179491
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentine_vaiaПоследовательно выполняется создание таблицы и сразу после этого обнуление мандатных меток.

pg_dump также допилен. Почитайте хелп на pg_dump, есть возможность создавать дамп без учета мандатных меток. Кроме этого, если учитываются мандатные метки, то и таблицы создаются с поддержкой мандатных атрибутов, а это тоже допиленный синтаксис.

Вы используете чистый 9.2 или из состава AstraLinux?
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39179546
Valentine_vaia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторэто расширение конкретного форка постргесса (МСВС?)
авторВы используете чистый 9.2 или из состава AstraLinux?

Да, расширение (документации по ней не обновлена). Используем Linter под MCBC - разработки ВНИИНС (г.Москва).

авторpg_dump также допилен. Почитайте хелп на pg_dump, есть возможность создавать дамп без учета мандатных меток. Кроме этого, если учитываются мандатные метки, то и таблицы создаются с поддержкой мандатных атрибутов, а это тоже допиленный синтаксис.

В данном проекте структура БД не позволяет использовать pg_dump и pg_restore. Но мне еще предстоит перекачивать только данные из БД одной версии сервера в БД другой версии =(
Модернизирую уже существующие файлы развертывания БД.
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39179549
Valentine_vaia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Указанная выше конструкция проглатывается при работе под postgres.
При работе под суперпользователем, созданным самостоятельно, ругается на него.

Решила все-таки избавиться от этой конструкции, т.к. политика ролей в версии 9.2 делает все за нас.
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39179564
big-trot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentine_vaiaРешила все-таки избавиться от этой конструкции, т.к. политика ролей в версии 9.2 делает все за нас.

Надо понимать как вы дальше будете использовать вашу бд.
Если предполагается использовать мандатный механизм доступа, то необходимо сразу создавать таблицы с этой опцией, иначе потребуется их пересоздавать с вытекающими отсюда последствиями.
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39182536
Valentine_vaia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-trotЕсли предполагается использовать мандатный механизм доступа, то необходимо сразу создавать таблицы с этой опцией, иначе потребуется их пересоздавать с вытекающими отсюда последствиями.

Спасибо за совет. Да, я как раз начала изучать отличия мандатного доступа в версиях.
...
Рейтинг: 0 / 0
ALTER TABLE table_name SET MAC TO '{0, 0}';
    #39182543
Valentine_vaia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentine_vaiaПеревожу проект с версии 7.4 на версию 9.2
БД развертывается из скриптов.

Последовательно выполняется создание таблицы и сразу после этого обнуление мандатных меток.
Код: sql
1.
2.
...
ALTER TABLE table_name SET MAC TO '{0, 0}';


Под 9.2 ругается
ОШИБКА: нет доступа к отношению "название таблицы"

Подскажите, как получить доступ для данного ALTER или чем заменить его в версии 9.2?



Для выполнения данной операции в 9.2 нужно для созданного супер пользователя установить параметры MACCAPS:

Код: sql
1.
ALTER ROLE my_super_user MACCAPS 'INGLVL,INGCAP,CHMAC'



или правильно настроить конфигурацию сервера. Эти параметры должны присутствовать в поле rolmaccaps таблицы pg_settings по данному пользователю. Тогда метка мандатного доступа будет ставиться.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / ALTER TABLE table_name SET MAC TO '{0, 0}';
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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