Estoy tratando de crear un rol y otorgar permisos de selección en sys.dba_objects. Este es mi sql:

grant select on sys.dba_objects to my_role
grant select on sys.dba_objects to my_role;

En RDS obtengo el siguiente error: Error: ORA-01031: privilegios insuficientes

Vi que RDS tiene un procedimiento almacenado dedicado para otorgar permisos en sys. Lo intenté:

call rdsadmin.rdsadmin_util.grant_sys_object('SYS.REGISTRY$HISTORY', 'my_role', 'select')

Error que recibo:

ORA-44003: invalid SQL name
ORA-06512: at "RDSADMIN.RDSADMIN_UTIL", line 248
ORA-44003: invalid SQL name
ORA-06512: at line 1
1
Ori N 18 ene. 2018 a las 11:43

3 respuestas

La mejor respuesta

Así es como lo hice funcionar: 1. Eliminó el sistema. prefijo como el sugerido anteriormente 2. Usado en mayúsculas

Ejemplo:

call rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'ASSESSMENT_ROLE', 'SELECT');
1
Ori N 18 ene. 2018 a las 13:25

Intente lo siguiente ... Primero debe otorgar select a rdsadmin con la opción de otorgar mediante SYS.

Como SYS grant seleccione en DBA_objects a rdsadmin con la opción de concesión;

Como rdsadmin

Conceda select en sys.dba_objects a my_role;

0
doc123 18 ene. 2018 a las 11:26

No conozco AWS RDS, pero ORA-01031 suena como una restricción conocida: los privilegios otorgados a través de roles no funcionarán en los procedimientos PL / SQL; deberá otorgarlos directamente al usuario.

0
Littlefoot 18 ene. 2018 a las 09:25
48317039