Ну, вам нужно либо
- использовать встроенную поддержку Oracle для ролей,
- хранить данные, которые вам нужны, в таблице, либо
- получать их изчто-то, что вы имеете вне базы данных.
Для нативной поддержки см., например, docs.oracle.com для CREATE ROLE.
Для храненияданные, которые вам нужны в таблице, вы можете использовать что-то простое, например
create table user_roles (
user_id integer primary key references users (user_id),
user_role varchar(20) not null references user_roles (user_role)
);
Если вы сделаете это, обратите пристальное внимание на разрешения для этой таблицы.Вы не хотите, чтобы пользователи могли наращивать свою роль.
Для получения ее из чего-то вне базы данных вы можете использовать что-то вроде
- имя сетевого входа,
- IP-адрес,
- cookie или
- что-то еще.
Я был бы немного удивлен, если какой-либо из них будет работать хорошо,хоть.Большинство из них, вероятно, также потребуют сохранения чего-либо в базе данных.
Когда мне нужны роли в приложении базы данных, я обычно полагаюсь на CREATE ROLE.