Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вопрос с правами на таблицы / 20 сообщений из 20, страница 1 из 1
17.01.2013, 12:38
    #38113681
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
Сейчас тестирую одну вещь на апексе 3.2...
Система такая: приложение со схемой аутентификации database_account (по пользователям БД).
Есть одна страница с репортом из одной таблицы table1.
Есть два пользователя БД: условно, №1 и №2. Пользователь №1 имеет права на селект, пользователь №2 - нет. Но на странице отчет из этой таблицы видят оба. Я так понимаю, это потому, что апекс работает с БД от имени пользователя APEX_PUBLIC_USER и видит всё, а потом уже права пользователей не проверяет.
Вопрос такой: в версиях 4.0 - 4.2 также? Я так понимаю, все права надо потом самостоятельно повторять с помощью схем авторизации?
...
Рейтинг: 0 / 0
17.01.2013, 14:01
    #38113925
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
rockclimberЯ так понимаю, все права надо потом самостоятельно повторятьваять с помощью схем авторизации?
Коротко - да. Права в базе и права в приложении - не одно и тоже.
...
Рейтинг: 0 / 0
17.01.2013, 14:58
    #38114063
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
rockclimber,

схема аутентификации в данном случае просто проверяет, что есть пользователь БД с указанным логином и паролем.

Приложение же использует для работы с БД сессии под пользователем ANONYMOUS / APEX_PUBLIC_USER. Теоретически, в целях безопасности ещё можно создать и использовать своего пользователя, дав ему права на соответствующие объекты схемы APEX_<release>, настроив на него DAD и выдав права в XDB.

Под этим пользователем выполняется хранимый код в APEX_<release> (процедуры f, p, z, пакеты wwv_flow и т.п.). А уже в них запросы и PL/SQL-код из приложения разбираются и выполняются от имени пользователя, который указан в Parsing Schema приложения.

Таким образом, правами на объекты, которые используются в приложении, для его успешной работы должен обладать пользователь из Parsing Schema приложения. А уже авторизация определяет права на всё приложение и его части для пользователей приложения (которые не обязательно соответствуют пользователям БД).
...
Рейтинг: 0 / 0
18.01.2013, 09:54
    #38114883
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
suPPLer,

Спасибо за развернутый ответ. Я это интуитивно и сам понимал, просто обсуждали с коллегами применимость апекса для одной нашей задачи и меня сбил с толку вопрос "у пользователя в БД нет права на селект, а когда входит через апекс - есть, нелогично же?" Я написал здесь пост и ушел на обед, а пока обедал, понял, что все логично, просто с этой стороны не задумывался никогда.
...
Рейтинг: 0 / 0
12.02.2013, 10:50
    #38147314
alexande26k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
Подскажите пожалуйста. У меня Вопрос почти схожий.
Приложение также работает со схемой аутентификации database_account (по пользователям БД).
Мне необходимо сделать так чтобы одни пользователи могли видеть одни конктретные объекты, страницы, другие пользователи другие объекты, ... .
Как это можно сделать?? не совсем понятно если честно... Очень прошу помощи..
...
Рейтинг: 0 / 0
12.02.2013, 11:27
    #38147396
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
alexande26kПодскажите пожалуйста. У меня Вопрос почти схожий.
Приложение также работает со схемой аутентификации database_account (по пользователям БД).
Мне необходимо сделать так чтобы одни пользователи могли видеть одни конктретные объекты, страницы, другие пользователи другие объекты, ... .
Как это можно сделать?? не совсем понятно если честно... Очень прошу помощи..Для этого есть схемы авторизации. Причем апекс может регулировать доступ только к объектам апекс-приложения - страницам, регионам, элементам страницы и т. д., и не регулирует доступ к объектам БД (таблицам, процедурам и т. д.) У каждого элемента в свойствах есть закладка "Security" или "Authorization" - туда смотрите.
...
Рейтинг: 0 / 0
12.02.2013, 12:47
    #38147536
alexande26k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
rockclimber,

Спасибо огромное за пояснение)))
...
Рейтинг: 0 / 0
12.02.2013, 13:06
    #38147588
alexande26k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
Возник еще один вопрос.

Возможно ли реализовать "панель управления доступом" (страница в приложении) для "АДМИНА", и в ней управлять видимостью страниц(а также объектами апекс-приложения) для других пользователей.
...
Рейтинг: 0 / 0
12.02.2013, 16:03
    #38148047
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
alexande26kВозможно ли реализовать "панель управления доступом" (страница в приложении) для "АДМИНА", и в ней управлять видимостью страниц(а также объектами апекс-приложения) для других пользователей.

Конечно, возможно. Главное, чтобы эта страница (или набор страниц) тоже была с доступом, требующим авторизации.
...
Рейтинг: 0 / 0
12.02.2013, 17:52
    #38148327
alexande26k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
suPPLerКонечно, возможно. Главное, чтобы эта страница (или набор страниц) тоже была с доступом, требующим авторизации.

Спасибо за хорошую новость))
Однако я немного теперь запутался.. Если все это возможно, то как все это реализовать.. Допустим у меня есть отчет на нем много различных кнопок, каждую из которых я должен скрыть или показать для определенного пользователя, и хочется все это сделать при помощи простого изменения значения checkbox'a. Это возможно?!
Если да то где в таком случае должна лежать эта "таблица" с этими значениями?? в схеме Апекс?! или не обязательно??

Извините за столь огромное количество вопросов, но мне очень надо разобраться в этой проблеме.
...
Рейтинг: 0 / 0
12.02.2013, 19:15
    #38148437
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
alexande26ksuPPLerКонечно, возможно. Главное, чтобы эта страница (или набор страниц) тоже была с доступом, требующим авторизации.

Спасибо за хорошую новость))
Однако я немного теперь запутался.. Если все это возможно, то как все это реализовать.. Допустим у меня есть отчет на нем много различных кнопок, каждую из которых я должен скрыть или показать для определенного пользователя, и хочется все это сделать при помощи простого изменения значения checkbox'a. Это возможно?!
Если да то где в таком случае должна лежать эта "таблица" с этими значениями?? в схеме Апекс?! или не обязательно??

Извините за столь огромное количество вопросов, но мне очень надо разобраться в этой проблеме.По пунктам:
1. Делите все элементы приложения на функциональные группы (эта группа выполняет функцию1, эта - функцию2, и т. д.)
2. Создаете таблицу "Функции", перечисляете там функции
3. Создаете таблицу "Роли", даете каждому юзеру по роли
4. Создаете промежуточную таблицу для соединения ролей и функций отношением "многие ко многим"
5. Указываете, какой роли что можно делать
6. На каждую функцию создаете схему авторизации (схема проверяет, есть ли у данной роли право на выполнение данной функции)
7. Каждому элементу указываете его схему
8. PROFIT!

Это один из возможных вариантов, я так сделал - меня все устраивает.
...
Рейтинг: 0 / 0
13.02.2013, 09:51
    #38148895
alexande26k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
rockclimber,

Спасибо огромное за подсказки)) Только подскажите еще одно НО! Где эти таблицы должны находиться?? Внутри схемы Апекса?
...
Рейтинг: 0 / 0
13.02.2013, 09:59
    #38148911
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
alexande26krockclimber,

Спасибо огромное за подсказки)) Только подскажите еще одно НО! Где эти таблицы должны находиться?? Внутри схемы Апекса?Когда заходите в SQL Workshop, в меню (вверху, справа) есть выпадающий список с подписью "Schema". Там будет одна или несколько схем. Вот в тех схемах и создавайте.
...
Рейтинг: 0 / 0
13.02.2013, 10:14
    #38148944
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
И еще. Когда создаете новый workspace в администраторском разделе, вы указываете для этого workspace схему. Эта схема будет основной. Потом в workspace можно добавить еще несколько схем, но, елси я все правильно понял, первой схеме на объекты остальных схем надо дать права на select, update, execute и т. д. И указывать названия этих схем в запросах.
...
Рейтинг: 0 / 0
13.02.2013, 10:18
    #38148951
alexande26k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
rockclimber,

Спасибо огромное)) Буду делать. А вы не могли бы скинуть код одной из таких схем авторизации. Буду очень признателен. Спасибо заранее
...
Рейтинг: 0 / 0
13.02.2013, 10:34
    #38148977
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
alexande26krockclimber,

Спасибо огромное)) Буду делать. А вы не могли бы скинуть код одной из таких схем авторизации. Буду очень признателен. Спасибо заранееНу это уже наглость, вообще-то SQL вы тоже не знаете?
Тип проверки - SQL Exists, код:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select *
  from roles r, -- список ролей пользователей (в принципе, ее можно не использовать в этом запросе, почему - см. раздел where)
       users u, -- список пользователей
       functon_of_roles fr  -- таблица связи функций и ролей
 where u.login = APEX_CUSTOM_AUTH.GET_USER
   and u.role_id = r.id
   and fr.role_id = r.id
   and fr.function_id = 123 -- это номер функции для этой схемы
...
Рейтинг: 0 / 0
13.02.2013, 15:59
    #38149779
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
rockclimber
Код: plsql
1.
   and fr.function_id = 123 -- это номер функции для этой схемы



Не так давно в основном разделе Oracle обсуждались подходы к моделированию статусов, справочников, внешний ключей и так далее: а как вы делаете статусы ? . Пожалуй, в этом случае я согласен, что ключ должен быть символьным кодом с каким-то значением. Определять на глаз, что такое 123, слегка затруднительно. Пусть уж лучше RPT$EMP-CREATE.
...
Рейтинг: 0 / 0
13.02.2013, 16:27
    #38149852
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
suPPLerrockclimber
Код: plsql
1.
   and fr.function_id = 123 -- это номер функции для этой схемы



Не так давно в основном разделе Oracle обсуждались подходы к моделированию статусов, справочников, внешний ключей и так далее: а как вы делаете статусы ? . Пожалуй, в этом случае я согласен, что ключ должен быть символьным кодом с каким-то значением. Определять на глаз, что такое 123, слегка затруднительно. Пусть уж лучше RPT$EMP-CREATE.Лично я сделал у себя отдельную табличку functions и отдельную страничку для этой таблицы типа Tabular Form, и на этой страничке все прекрасно и наглядно видно, что такое 123 и зачем это нужно. Там же можно добавить еще функций, и оттуда же есть ссылка на master-detail страницу, на которой для выбранной функции можно отредактировать список ролей. Такая же Tabular Form есть для списка ролей, с такой же ссылкой на аналогичную master-detail форму, где для роли можно задать список доступных функций, доступ к этим страницам одной из таких функций и регулируется, ну и так далее, и тому подобное...
А самое главное, сделать всю эту красоту можно буквально за пару часов - за что я и люблю апекс.
...
Рейтинг: 0 / 0
25.06.2013, 08:45
    #38308951
Serge Larionoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
rockclimberПо пунктам:
...
3. Создаете таблицу "Роли", даете каждому юзеру по роли
...
Это один из возможных вариантов, я так сделал - меня все устраивает.

Уважаемый rockclimber, правильно ли я понимаю, что в вашей системе у одного пользователя может быть только одна роль?
...
Рейтинг: 0 / 0
03.07.2013, 23:59
    #38319753
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с правами на таблицы
Serge LarionoffrockclimberПо пунктам:
...
3. Создаете таблицу "Роли", даете каждому юзеру по роли
...
Это один из возможных вариантов, я так сделал - меня все устраивает.

Уважаемый rockclimber, правильно ли я понимаю, что в вашей системе у одного пользователя может быть только одна роль?Только сейчас заметил...
Если еще актуально: да, в моей системе у каждого пользователя может быть только одна роль. Но никто не мешает вам чуть-чуть допилить ее напильником. Простор для творчества на самом деле огромный.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вопрос с правами на таблицы / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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