Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché Новый топик    Ответить
 как сделать Package Mappings только для чтения?  [new]
alatalo
Member

Откуда:
Сообщений: 46
Зашарил свою библиотеку со всеми неймспейсами через %ALL и Package Mapping. Всё прекрасно кроме того, что если кто-то случайно удалит ее в одном неймспейсе, то она удалится из всех. Есть какой-то вариант сделать маппинг ридонли? Или каким-то другим способом зашарить библиотеку.
13 янв 17, 12:56    [20102360]     Ответить | Цитировать Сообщить модератору
 Re: как сделать Package Mappings только для чтения?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1349
alatalo,

маппинг - категория уровня области, он ничего не знает про RO/RW баз данных.

Как вариант, поместите ваш пакет в отдельную БД, которая RW не для всех, а скажем только для группы доверенных вам лиц. Легко делается через ресурсы и роли.
13 янв 17, 13:04    [20102396]     Ответить | Цитировать Сообщить модератору
 Re: как сделать Package Mappings только для чтения?  [new]
alatalo
Member

Откуда:
Сообщений: 46
Alexey Maslov

спасибо. С рутинами были в стародавние времена какие-то варианты с % в имени и CACHELIB базой для библиотек. Для классов через это не удастся ничего выкрутить?
13 янв 17, 14:47    [20103100]     Ответить | Цитировать Сообщить модератору
 Re: как сделать Package Mappings только для чтения?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1349
alatalo,

Можно, но зачем? Эту БД вы потеряете при первом же апгрэйде Cache.
Аналогично можно поступить с любой другой БД, если вам не охота возиться с ролями: смонтировать эту БД как RW, записать туда всё что надо, и снова перемонтировать её как R.
13 янв 17, 15:11    [20103256]     Ответить | Цитировать Сообщить модератору
 Re: как сделать Package Mappings только для чтения?  [new]
alatalo
Member

Откуда:
Сообщений: 46
Alexey Maslov
alatalo,
Эту БД вы потеряете при первом же апгрэйде Cache.

в моём случае вот это как раз не проблема абсолютно. Я с этим %ALL упражняюсь исключительно потому, что понял что прием с % в имени для пользовательских классов не работает. Я ощибаюсь? Я назову мой класс %mylib.mylibclass в %SYS и он будет виден во всех неймспейсах?
13 янв 17, 16:02    [20103558]     Ответить | Цитировать Сообщить модератору
 Re: как сделать Package Mappings только для чтения?  [new]
DAiMor
Member

Откуда: Brno, Czech Republic
Сообщений: 2273
класс, рутина или глобал, не важно если начинается с % то будет видно во всех областях.
Но, называть нужно не просто %mylib а %zmylib или %Zmylib, т.е. на %z или %Z таким образом это попадет в другую базу, но эта база не пострадает при обновлении Caché.

Да и еще один "плюс" данного подхода, база CACHELIB используется для всех %- по умолчанию при установке монтируется в readonly. %Z попадают в CACHESYS и она открыта для записи по умолчанию.
13 янв 17, 16:18    [20103666]     Ответить | Цитировать Сообщить модератору
 Re: как сделать Package Mappings только для чтения?  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1349
DAiMor
...база CACHELIB используется для всех %- по умолчанию при установке монтируется в readonly...
ТС вроде как именно этого и хочет, чтобы ему ничего не потёрли.

Помещать в CACHESYS что-либо пользовательское - значит, давать какой-то пользовательской роли право CACHESYS:RW, а это существенно снижает безопасность (не буду вдаваться в подробности, чтобы не портить карму ISC), поэтому лучше этого избегать, используя %ALL и другую (отдельную, не CACHESYS и не CACHELIB) БД.
13 янв 17, 17:14    [20103902]     Ответить | Цитировать Сообщить модератору
 Re: как сделать Package Mappings только для чтения?  [new]
alatalo
Member

Откуда:
Сообщений: 46
Alexey Maslov, DAiMor,
все понятно, спасибо
13 янв 17, 18:23    [20104158]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché Ответить