У меня не было бы столбца на элемент меню, но строки на элемент меню в таблице примерно так:
create table menu_access
(userid varchar2(30),
menuid integer,
access_flag integer,
primary key (username, menuid)
);
Тогда вы вставите данные как:
insert into menu_access (username, menuid, access_flag) values ('TONY', 123, 1);
insert into menu_access (username, menuid, access_flag) values ('TONY', 456, 1);
insert into menu_access (username, menuid, access_flag) values ('TONY', 789, 0);
(Альтернативой может быть полное исключение столбца access_flag и просто сохранение строк для пунктов меню, к которым у пользователя есть доступ).
Таким образом, условия для отображения каждого пункта меню будут одинаковыми, просто привязка другого значения для menuid. Вы также можете, возможно, создать меню, выбрав все строки, к которым у пользователя есть доступ, и соответствующим образом составив меню.