Problema con el menu

lemf
20 de Julio del 2005
hola [email protected]
Trabajo en forms6, he creado un menu, al momento que abro el form que tiene el menu, me aparece el mensaje
frm - 10256 user is not authorized to run form builder menu....
Alguien me puede decir que rol o permiso debo añadir a un usuario para poder ejecutar el menu sin problemas

Gracias

Rodolfo Reyes
20 de Julio del 2005
Que yo sepa ninguno. Pero al leer la documentación encontre lo sitguiente:

FRM-10256: User is not authorized to run Form Builder Menu.

Cause: You are not enrolled in Form Builder. You do not have SELECT permission on the Form Builder base tables.

Action: Notify your DBA.

Para que tienes que tener permiso de select a las tablas de form builder.

Pero me parece raro, porque los usuario que yo creo, unicamente tiene permisos ha la tablas propias del esquema, y el permiso de "create session" y "alter session". Y no me han dado problemas para utilizar los menus.

lemf
20 de Julio del 2005
Pues te comento que asi lo pense tambien, he seguido los siguientes pasos:
* Crear un rol con todos los permisos que necesito para que realice las respectivas operaciones DML
* Crear al usuario con con el rol de connect y el nuevo rol
* Añadir en el menu.mmb, en la opción de menu security del Menu Module, al nuevo rol que necesito que se le habilite o no el menu
* Cambiar Use_security = yes
* Añadir por menu en el Menu Item, el uso del rol del usuario, según sea el caso
* Pero cuando intento ingresar con la nueva clave alli es cuando me aparece el error.

Por el momento he solventado este problema asignandole el rol de EXP_FULL_DATABASE, lo cual no me parece lo mas apropiado....

Me parece que debe tener asignado algun permiso o rol que desconosco para que forms use este usuario para habilitar o no los respectivos menus

Gracias

Aldrin
20 de Julio del 2005
1. Ingresa como usuario 'System' a el sqlplus
2. Ejecuta lo siguiente:
--------
-- Creando vista
create or replace view FRM50_ENABLED_ROLES as
select urp.granted_role role, sum(distinct decode(rrp.granted_role,
'ORAFORMS$OSC ',2, 'ORAFORMS$BGM ',4, 'ORAFORMS$DBG ',1,0)) flag
from sys.user_role_privs urp, role_role_privs =rrp where urp.granted_role rrp.role (+) and urp.granted_role not like 'ORAFORMS$% ' group by
urp.granted_role;

--creando un sinonimo publico para la vista

create public synonym FRM50_ENABLED_ROLES for system.FRM50_ENABLED_ROLES;
create role ORAFORMS$OSC;
create role ORAFORMS$DBG;
create role ORAFORMS$BGM;
------

3. Ahora crea los permisos sobre la vista que acabas de crear a los usuarios que se conectarán, por ejemplo:

GRANT DELETE ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT INSERT ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT SELECT ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT UPDATE ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT REFERENCES ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT ON COMMIT REFRESH ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT QUERY REWRITE ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT DEBUG ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;
GRANT FLASHBACK ON SYSTEM.FRM50_ENABLED_ROLES TO <user>;