¿Es posible crear un usuario de base de datos de solo lectura en una base de datos Oracle? ¿Cómo?Oracle: cómo crear un usuario de solo lectura
Respuesta
Un usuario en una base de datos Oracle solo tiene los privilegios que usted concede. Entonces puede crear un usuario de solo lectura simplemente no otorgando ningún otro privilegio.
Cuando se crea un usuario
CREATE USER ro_user
IDENTIFIED BY ro_user
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
el usuario ni siquiera tiene permiso para conectarse a la base de datos. Puede otorgarle
GRANT CREATE SESSION to ro_user
y luego puede otorgar los privilegios de lectura que desee. Por ejemplo, si desea RO_USER
ser capaz de consultar SCHEMA_NAME.TABLE_NAME
, que haría algo como
GRANT SELECT ON schema_name.table_name TO ro_user
En general, es mejor crear un papel, sin embargo, y la concesión de los privilegios de objeto para el papel de modo que usted puede otorgar el rol a diferentes usuarios. Algo así como
Crear el papel
CREATE ROLE ro_role;
Grant el rol de acceso SELECT en cada mesa en un esquema concreto
BEGIN
FOR x IN (SELECT * FROM dba_tables WHERE owner='SCHEMA_NAME')
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || x.table_name ||
' TO ro_role';
END LOOP;
END;
y conceda la función al usuario
GRANT ro_role TO ro_user;
create user ro_role identified by ro_role;
grant create session, select any table, select any dictionary to ro_role;
Es n ot estrictamente posible en db predeterminado debido a los muchos ejecutables públicos que cada usuario gana automáticamente a través del público.
Ejecute el siguiente procedimiento, por ejemplo, como sistema de usuario.
Establezca p_owner en el propietario del esquema y p_readonly en el nombre del usuario de solo lectura.
create or replace
procedure createReadOnlyUser(p_owner in varchar2, p_readonly in varchar2)
AUTHID CURRENT_USER is
BEGIN
execute immediate 'create user '||p_readonly||' identified by '||p_readonly;
execute immediate 'grant create session to '||p_readonly;
execute immediate 'grant select any dictionary to '||p_readonly;
execute immediate 'grant create synonym to '||p_readonly;
FOR R IN (SELECT owner, object_name from all_objects where object_type in('TABLE', 'VIEW') and owner=p_owner) LOOP
execute immediate 'grant select on '||p_owner||'.'||R.object_name||' to '||p_readonly;
END LOOP;
FOR R IN (SELECT owner, object_name from all_objects where object_type in('FUNCTION', 'PROCEDURE') and owner=p_owner) LOOP
execute immediate 'grant execute on '||p_owner||'.'||R.object_name||' to '||p_readonly;
END LOOP;
FOR R IN (SELECT owner, object_name FROM all_objects WHERE object_type in('TABLE', 'VIEW') and owner=p_owner) LOOP
EXECUTE IMMEDIATE 'create synonym '||p_readonly||'.'||R.object_name||' for '||R.owner||'."'||R.object_name||'"';
END LOOP;
FOR R IN (SELECT owner, object_name from all_objects where object_type in('FUNCTION', 'PROCEDURE') and owner=p_owner) LOOP
execute immediate 'create synonym '||p_readonly||'.'||R.object_name||' for '||R.owner||'."'||R.object_name||'"';
END LOOP;
END;
puede crear el usuario y el privilegio subvención
Crear usuario read_only identificado por read_only; conceder crear sesión, seleccione cualquier tabla para read_only;
- 1. Configuración de un usuario de solo lectura para SVN-Apache
- 2. Usuario único de solo lectura para svn
- 3. ¿Es posible crear un interbloqueo con acceso de solo lectura?
- 4. ¿Cómo crear una entidad de solo lectura en Entity Framework?
- 5. cómo crear una sesión de solo lectura en nHiberate?
- 6. ¿Cómo elimino un archivo de solo lectura?
- 7. ¿Cómo hacer un archivo de "solo lectura"?
- 8. ¿Cómo crear un usuario con privilegios de solo lectura para todas las bases de datos en Postgresql?
- 9. Cómo clonar usuario en Oracle
- 10. problemas de lectura de Oracle
- 11. ¿Puede JAXB crear una propiedad de clase de "solo lectura"?
- 12. ¿navegador independiente de solo lectura?
- 13. Solo lectura colección observable
- 14. Derechos de acceso de solo lectura CouchDB
- 15. Cómo crear un cuadro de texto de solo lectura en ASP.NET MVC3 Razor
- 16. ¿Cómo puedo crear un miembro de clase de solo lectura en Scala?
- 17. SVN: ¿Cómo hacer un archivo de solo lectura con subversión?
- 18. ¿Cómo crear un texto de solo lectura usando html helper en asp.net mvc?
- 19. Devolver un doble puntero de solo lectura
- 20. ¿Cómo hacer un repositorio de git de solo lectura?
- 21. Cómo implementar una propiedad de solo lectura
- 22. ¿Cómo crear un favicon de solo texto?
- 23. ¿Cómo crear un volcado con Oracle PL/SQL Developer?
- 24. SQLite/PHP de solo lectura?
- 25. ¿Cómo configura un DateTimePicker para que sea de solo lectura?
- 26. ¿Cómo puede ser nulo un campo estático de solo lectura?
- 27. Cómo crear dos interfaces para una clase de Java, una de solo lectura, una de lectura y escritura?
- 28. Python mmap ctypes - solo lectura
- 29. Tabla de solo lectura en mysql
- 30. Creación de un repositorio de solo lectura con SpringData