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
3 respuestas
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');
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;
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.
Preguntas relacionadas
Nuevas preguntas
sql
El lenguaje de consulta estructurado (SQL) es un lenguaje para consultar bases de datos. Las preguntas deben incluir ejemplos de código, estructura de tabla, datos de muestra y una etiqueta para la implementación de DBMS (por ejemplo, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, etc.) que se utiliza. Si su pregunta se relaciona únicamente con un DBMS específico (usa extensiones / características específicas), use la etiqueta de ese DBMS en su lugar. Las respuestas a las preguntas etiquetadas con SQL deben usar SQL estándar ISO / IEC.