1) Пользователь должен пройти аутентификацию из пользовательской таблицы
- Создайте схему аутентификации и установите для типа схемы значение
Custom
.
- Реализуйте функцию аутентификации и поместите код в раздел кода PL / SQL. Функция поставляется с именем пользователя и паролем, введенными со страницы входа в систему. Используйте это, чтобы проверить соответствие. ВСЕГДА шифруйте пароли пользователей. Функция возвращает истину или ложь в зависимости от результата.
Ниже приведен пример кода, доступный и скопированный из текста справки в Page Builder:
function my_authentication (
p_username in varchar2,
p_password in varchar2 )
return boolean
is
l_user my_users.user_name%type := upper(p_username);
l_pwd my_users.password%type;
l_id my_users.id%type;
begin
select id , password
into l_id, l_pwd
from my_users
where user_name = l_user;
return l_pwd = rawtohex(sys.dbms_crypto.hash (
sys.utl_raw.cast_to_raw(p_password||l_id||l_user),
sys.dbms_crypto.hash_sh512 ));
exception
when NO_DATA_FOUND then return false;
end;
- Установите Аутентичную функцию на
my_authentication
2) После аутентификации пользователь должен авторизоваться для приложения в соответствии с назначенной ролью в пользовательской таблице
- Снова в области кода PL / SQL внедрите процедуру пост-аутентификации, например,
post_login
, который извлекает роль пользователя и добавляет их в элемент приложения или в коллекцию APEX.
- Добавьте имя процедуры в поле Имя процедуры после аутентификации, например,
post_login
.
- Создание схем авторизации на основе значений выше.
OR
Просто создайте схему авторизации, которая просто запрашивает ту же информацию на лету, хотя, вероятно, небольшое снижение производительности зависит от того, как часто эти авторизации вызываются.
3) Пользователь должен иметь Авторизацию для операций READ, INSERT, UPDATE и DELETE из таблицы
- Вы можете ограничить количество страниц, элементов страницы (только для чтения или редактируемых), кнопок и процессов на основе схем авторизации.
- В зависимости от вашей лицензии Oracle вы также можете реализовать Oracle Real Application Security (RAS) или Виртуальные частные базы данных (VPD) для управления доступом на «уровне базы данных», и это определенно более безопасно.