powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
12 сообщений из 12, страница 1 из 1
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34992538
НДГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И так.
Есть два класса (две таблицы). Одну из них мне надо и читать и редактировать, вторую только просматривать. Оба этих класса находятся в одной области - OBL.
Для этой области создан ресурс: %OBL, который имеет уровень доступа R.

Для того, чтобы разграничить доступ к этим двум таблицам на уровне SQL-запросов, я создаю две роли: roleRW и roleR.

В роли roleRW я даю полный SQL-доступ к первой таблице.
В роли roleR я даю доступ ко второй таблице только на SELECT.

Роль roleRW имеет уровень доступа к ресурсу %OBL - RW
Роль roleR имеет уровень доступа к ресурсу %OBL - R

Логично, что для одного пользователя я задаю эти две роли.

Внимание ВОПРОС. Получается так, что когда я задаю эти две роли пользователю, то пользователь всё-таки может редактировать данные обеих таблиц. Даже той таблицы, для которой определен доступ R. ПОЧЕМУ ТАК ПРОИСХОДИТ? Хотя бы дайте наводку на решение проблемы.
Я подозреваю, что дело всё в том, что вторая роль имеет доступ RW к ресурсу %OBL. Но ведь как-то надо решить проблему.

Заранее благодарен за помощь.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34993197
Peter Zarubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ресурсу %OBL делаешь доступ только R
А доступ к таблицам, прописываешь только в Ролях

автор
Роль roleRW имеет уровень доступа к ресурсу %OBL - RW

Этого делать не надо.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34993745
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем Вам вообще нужен ресурс %OBL, Вы где-то вызываете метод $SYSTEM.Security.Check?

Более того, согласно документации пользовательский ресурс не может начинаться с "%":
http://localhost:?/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_intro

В Вашем случае достаточно пользователя и одной/двух ролей.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34994469
НДГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Peter ZarubinРесурсу %OBL делаешь доступ только R
А доступ к таблицам, прописываешь только в Ролях

так, делаю в обеих ролях доступ к ресурсу R, и в самом ресурсе делаю общий доступ R,
и тогда редактирование обеих таблиц не работает,
хоть даже и настроен полный доступ ко второй таблице во второй роли.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34994511
НДГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitЗачем Вам вообще нужен ресурс %OBL, Вы где-то вызываете метод $SYSTEM.Security.Check?

ресурс %DB_OBL создаётся при создании области OBL

servit
Более того, согласно документации пользовательский ресурс не может начинаться с "%":
http://localhost:?/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS_intro

Видимо разные понятия слова "пользовательский", раз он создаётся сам и начинается на "%"

servit
В Вашем случае достаточно пользователя и одной/двух ролей.

так оно так и есть, пользователь + две роли, но я не об этом,
я же о том, что выполняется запрос на удаление данных из таблицы в роли, которая не имеет на это разрешения W, а только R.

Более того, я забыл ещё в начала указать такой момент. Когда я создал пользователя и роли, начал тестировать их через портал, там всё соблюдается: роль, не имеющая доступ к ресурсу W, не редактирует данные, другая роль - редактирует. Т.е. всё верно работает. А если загрузить приложение (страницу), которую я создал в Zen'е, в которой есть код на удаление записи по ID, то этот код выполняется. Т.е. он выполняется в том случае, когда пользователь имеет хотя бы одну роль с доступом к ресурсу RW.
Может у меня со страницой что-то не так ?
Аутентификация пользователей не правильно настроена ?
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34994653
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НДГТ.е. он выполняется в том случае, когда пользователь имеет хотя бы одну роль с доступом к ресурсу RW.Вообще-то, так и задумано. Список текущих полномочий пользователя = сумме полномочий всех его текущих ролей. Точную цитату в док-ии найдите сами :) И еще: Cache не позволяет создать ресурс, связанный с областью. Только с БД или с приложением.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34994688
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.
Вы писали
авторДля этой области создан ресурс: %OBL, который имеет уровень доступа R.
Ресурс %DB_OBL - это ресурс на базу данных, а не на область.
%DB_OBL и %OBL - "это две большие разницы".

2.
Раз все работает в SMP, но не в Zen, то скорее всего проблема в настройке Zen - приложения.
Возможно Вы коннектитесь под неавторизованным пользователем. Попробуйте вывести на Zen-страничке значения переменных $USERNAME и $ROLES .

Возможно еще, что в Zen-приложении происходит эскалация (увеличение) прав через
Код: plaintext
set $ROLES="%All"
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34994694
НДГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov НДГТ.е. он выполняется в том случае, когда пользователь имеет хотя бы одну роль с доступом к ресурсу RW.Вообще-то, так и задумано. Список текущих полномочий пользователя = сумме полномочий всех его текущих ролей. Точную цитату в док-ии найдите сами :)


Опять вы не понимаете.
Есть РОЛЬ1, в ней настроен доступ к таблицам только на уровне R (SELECT),
а есть РОЛЬ2, в ней настроен доступ к совершенно другим таблицам (не к тем таблицам, что в РОЛи1) на уровне RW (SELECT, DELETE и др.).
Так вот когда пользователю назначены РОЛЬ1 и РОЛЬ2, тогда он может РЕДАКТИРВОАТЬ таблицы из РОЛи1, т.е. те таблицы, на которые указан доступ SELECT.
Ещё раз: таблицы в первой и во второй ролях разные, и не пересекаются.

Alexey Maslov
И еще: Cache не позволяет создать ресурс, связанный с областью. Только с БД или с приложением.

извиняюсь, перепутал, но суть та же.. есть БД, и к ней ресурс %DB_БД,
просто в моём проекте названия области и БД одинаковы.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34994719
НДГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit1.
Вы писали
авторДля этой области создан ресурс: %OBL, который имеет уровень доступа R.
Ресурс %DB_OBL - это ресурс на базу данных, а не на область.
%DB_OBL и %OBL - "это две большие разницы".

извиняюсь, интуитивно перепутал

servit
2.
Раз все работает в SMP, но не в Zen, то скорее всего проблема в настройке Zen - приложения.
Возможно Вы коннектитесь под неавторизованным пользователем. Попробуйте вывести на Zen-страничке значения переменных $USERNAME и $ROLES .

попробую вывести...

servit
Возможно еще, что в Zen-приложении происходит эскалация (увеличение) прав через
Код: plaintext
set $ROLES="%All"

нет, такого нет, так как если я убираю РОЛЬ2 (RW), то данные не редактируются. Даже если не удалять РОЛЬ2, а просто в ней установить доступ к ресурсу R, тоже удаления не будет. Ни в каких таблицах.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34994991
НДГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit1.
...
Попробуйте вывести на Zen-страничке значения переменных $USERNAME и $ROLES .
...



по поводу вывода $USERNAME.

создал локальный метод страницы,
назначил этот метод нажатию кнопки btnUSER

вот пример метода:
Код: plaintext
1.
2.
3.
4.
5.
6.
/// получить имя пользователя данной страницы
Method GetUserName() [Language = JavaScript]
{
	var btn = zenPage.getComponentById("btnUSER");
	btn.setProperty("caption",$USERNAME);
}

Во второй строке метода выдаётся ошибка, мол не известна переменная $USERNAME.

Подскажите, как её вывести, чтобы просмотреть содержимое.
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34995134
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
/// получить имя пользователя данной страницы
Method GetUserName() [ZenMethod]
{
	set btn = %page.%GetComponentById("btnUSER")
	set btn.caption=..EscapeHTML($USERNAME_" "_$ROLES)
}
...
Рейтинг: 0 / 0
Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
    #34995197
НДГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitПопробуйте вывести на Zen-страничке значения переменных $USERNAME и $ROLES .
проверил и роли и пользователя - всё верно, выводится тот же пользователь, которого я задавал и который входит на страницу

так что мне кажется проблема в чём-то другом, не в ролях, не в ресурсе...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите разобраться с ролями, ресурсами, привелегиями в Cache 2007
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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