Creación de esquemas en Oracle
Creación de esquemas en Oracle Carlos 12 Junio, 2009 - 17:55Este tema es para recoger comentarios acerca de la creación de nuevos esquemas en Oracle, creación de tablespaces, usuarios, asignación de permisos, etc.
Este tema es para recoger comentarios acerca de la creación de nuevos esquemas en Oracle, creación de tablespaces, usuarios, asignación de permisos, etc.
OWNER or User
Subido por Anonimo (no verificado) el 22 Septiembre, 2007 - 07:47
Un esquema es un owner o un user ???
El Schéma es un user...
Subido por Esper (no verificado) el 15 Enero, 2008 - 16:49
En respuesta a OWNER or User por Anonimo (no verificado)
El Schéma es un user...
Entonces puedo entender que
Subido por Anonimo (no verificado) el 22 Julio, 2008 - 17:33
En respuesta a El Schéma es un user... por Esper (no verificado)
Entonces puedo entender que la conexion seria la siguiente.
Usuario: APP
Password: APPPWD
Base de Datos: APPDAT
Estos seran mis parametros desde mi toad o pl/sqldev no es asi? o me equivoco?
Saludos.
Henry
El tablespace y la instancia
Subido por Carlos el 23 Julio, 2008 - 21:20
En respuesta a Entonces puedo entender que por Anonimo (no verificado)
Los datos del usuario y el password serían correctos, pero APPDAT es el tablespace, que no tiene nada que ver con el nombre de la base de datos.
El tablespace es el lugar donde se crean los objetos de uno o varios usuarios, y una base de datos tiene varios tablespaces. En este caso, al crear el usuario, le dices que todos los objetos (tablas, índices, procedures, etc.) que cree este user lo haga por defecto sobre el tablespace APPDAT.
El nombre de la base de datos lo puedes encontrer en el fichero tnsnames.ora, que estará en el directorio donde se haya instalado esta base de datos.
Es recomendable crear un tablespace para cada usuario que vaya a crear objetos, pero si te lo quieres ahorrar, si no especificas nada la base de datos utiliza el tablespace USERS como tablespace por defecto para cada nuevo usuario que se crea.
Esquema
Subido por Carlos el 23 Septiembre, 2007 - 22:02
El esquema lo componen todos los objetos propiedad de un usuario, en el ejemplo el User APP será el Owner de todas las tablas, índices, secuencias, etc que cree, y todos estos objetos formarán su esquema.
Carlos Fernández
Analista de sistemas
[quote=carlos]El esquema lo
Subido por Carlos el 1 Junio, 2010 - 09:43
En respuesta a Esquema por Carlos
[quote=carlos]El esquema lo componen todos los objetos propiedad de un usuario, en el ejemplo el User APP será el Owner de todas las tablas, índices, secuencias, etc que cree, y todos estos objetos formarán su esquema. [/quote]
Es decir, que por defecto, los objetos que crea un usuario pasan a ser directamente de su propiedad y parte de su esquema.
El tablespace es el lugar físico donde se almacenan objetos de la base de datos. Cada usuario tiene asignado un tablespace por defecto donde se almacenan todos los objetos que crea, si no especifica otro tablespace en la sentencia de creación.
En un mismo tablespace se pueden almacenar objetos de diferentes esquemas. Un buen ejemplo es el Tablespace USERS, que es donde por defecto se crean los objetos de los nuevos usuarios de la base de datos. Un usuario también puede crear objetos en diferentes tablespaces, sólo ha de especificar el tablespace que quiera en la sentencia de creación.
Con estas aclaraciones espero que puedas seguir sin problemas lo que se va haciendo en Cómo crear un nuevo esquema en Oracle paso a paso
Select any table
Subido por José (no verificado) el 10 Octubre, 2007 - 17:33
Tengo una Instancia en Oracle 10g, con varios esquemas, y necesito que uno de ellos pueda ver y consultar todas las tablas de todos los otros usuarios o esquemas.
¿como puedo hacer esto?
Permisos de consulta sobre tablas de diferentes esquemas
Subido por Carlos el 16 Octubre, 2007 - 21:13
En respuesta a Select any table por José (no verificado)
Para conceder permisos de consulta a este usuario sobre todas las tablas de los demás esquemas lo mejor es que utilices el diccionario de datos para crear los permisos. Entra con un usuario de sistema (SYS o SYSTEM) que 'vea' todas las tablas y ejecuta una sentencia como esta:
select 'Grant select on '|| t.owner||'.'||t.table_name ||' to usuario;'
from all_tables t
where owner not like '%SYS%';
Si quieres, en el artículo Construcción de scripts con ayuda del diccionario puedes consultar cómo crear un script con estas sentencias y lanzarlo desde la linea de comandos.
Otra opción sería asignar al usuario el rol SELECT_CATALOG_ROLE, o darle permisos de SELECT ANY DICTIONARY, pero con la que te propongo puedes restringir los permisos a lo que quieras en la misma select si, por ejemplo, no te interesa que el usuario tenga acceso a las tablas de sistema.
Carlos Fernández
Analista de sistemas
Pregunta
Subido por Manuel (no verificado) el 12 Junio, 2009 - 16:16
En respuesta a Permisos de consulta sobre tablas de diferentes esquemas por Carlos
Carlos, que tal, evidentemente sabes bastante de oracle. Tengo 1 esquema creado para dos usuarios:
Esquema: x
Usuario: Y
Usuario: YY
Uso un soft que se conecta a la base de datos, es un soft de piping, pero la pregunta es, como se conectan estos dos usarios
a la base de datos??? les instalo cliente de oracle, pero cuando pongo en sqlplus, el nombre de usurario: Y y la pass asignada me dice que no tiene privilegios, error ORA-01031? via toad es mejor??
Slds compas y gracias de antemano
Has de asignar permisos a los usuarios
Subido por Carlos el 12 Junio, 2009 - 17:44
En respuesta a Pregunta por Manuel (no verificado)
Hola Manuel, la mejor prueba es lo que hagas desde SQLPLUS.
Si te da ese error significa que estos usuarios no tienen permisos para conectar a este esquema. Supongo que especificas el esquema en la conexión, no?
En tu caso:
$ sqlplus Y/passwd@x
Si esto está bien también podría ser que los usuarios no tuvieran permisos de conexión. Asegurate de haberles asignado antes los roles CONNECT y RESOURCE con un usuario DBA de la BD:
GRANT "CONNECT" TO "Y";
GRANT "RESOURCE" TO "Y";
hola me pueden ayudar con un
Subido por Anonim. (no verificado) el 28 Abril, 2010 - 04:47
En respuesta a Has de asignar permisos a los usuarios por Carlos
hola me pueden ayudar con un script para identificar los tablespace utilizados por un esquema
En Recopilacion de scripts y
Subido por Carlos el 28 Abril, 2010 - 09:52
En respuesta a hola me pueden ayudar con un por Anonim. (no verificado)
En Recopilacion de scripts y consultas utiles de Oracle puedes encontrar varias consultas SQL que te pueden ayudar a utilizar el diccionario de datos de Oracle para obtener este tipo de información.
Esta, por ejemplo, creo que te podría servir:
Con esta consulta recuperas los datos de los objetos del esquema 'EL_ESQUEMA_QUE_ME_INTERESA', incluyendo el tablespace donde se crean. Puedes adaptarla o simplificarla a tu gusto.
a ver si comprendo ??? 1
Subido por Anonim. (no verificado) el 1 Junio, 2010 - 08:09
a ver si comprendo ???
1 tablespace es el espacio en los que los usuarios graban sus datos e indices
y el schema ???
acaso es un usuario propietario de los objetos usados en dicho DB ???
Me encantó el post, me fue
Subido por Rocio (no verificado) el 15 Junio, 2010 - 09:05
Me encantó el post, me fue muy util.
Tengo un tablespace con dos datafile y ¿como puedo eliminar uno de ellos y hacer el otro extensible?
La versión de Oracle que uso es la 9.2.0.1.0. He visto que en Oracle 10g es realmente facil.
Muchas gracias por todo.
Hola Tengo un usuario USR1
Subido por Panda (no verificado) el 26 Agosto, 2010 - 21:32
Hola
Tengo un usuario USR1 con su esquema ESQ1, como puedo crear un USR2 que vea ese mismo esquema ESQ1 y que las consultas no me pidan el nombre del esquema, por ejemplo:
Select * from ESQ1.tabla1;
Saludos
Puedes hacerlo utilizando
Subido por Carlos el 30 Agosto, 2010 - 12:22
En respuesta a Hola Tengo un usuario USR1 por Panda (no verificado)
Puedes hacerlo utilizando sinónimos públicos de Oracle, se trata sólo de crear un sinónimo para cada objeto excluyendo del mismo el nombre del owner.
Te enlazo el post Utilización de sinónimos para compartir objetos, donde se explica con más detalle cómo hacerlo.
Un saludo,
Gran post, tengo una duda
Subido por OMARE (no verificado) el 7 Diciembre, 2010 - 20:11
Gran post, tengo una duda sobre este tema.
Ya he creado varios esquemas dentro de una misma base de datos cada uno con sus propios objetos y privilegios, solamente quiero saber como monitorear los recursos de memoria que utiliza cada usuario, un ejemplo tengo los esquemas A y B, despues de la creacion del esquema B, se ha mostrado algo de irregularidad en el esquema A como jobs que se quedan colgados y no se ejecutan o se tardan mas de lo normal. En el esquema B tengo el privilegio de sistema UNLIMITED TABLESPACE por que no podia crear objetos en los tablespace que le tenia asignado a B, no se si esto afecte al esquema de A.
Saludos
[quote=OMARE]Gran post, tengo
Subido por OMARE el 22 Diciembre, 2010 - 18:35
En respuesta a Gran post, tengo una duda por OMARE (no verificado)
[quote=OMARE]Gran post, tengo una duda sobre este tema.
Ya he creado varios esquemas dentro de una misma base de datos cada uno con sus propios objetos y privilegios, solamente quiero saber como monitorear los recursos de memoria que utiliza cada usuario, un ejemplo tengo los esquemas A y B, despues de la creacion del esquema B, se ha mostrado algo de irregularidad en el esquema A como jobs que se quedan colgados y no se ejecutan o se tardan mas de lo normal. En el esquema B tengo el privilegio de sistema UNLIMITED TABLESPACE por que no podia crear objetos en los tablespace que le tenia asignado a B, no se si esto afecte al esquema de A.
Saludos
Otra duda Como puedo ver varios TABLESPACE con un usuario ademas del que se asigna por default al usuario sin tener el privilegio de UNLIMITED TABLESPACE, saludos
Cada usuario tiene definido
Subido por Carlos el 28 Diciembre, 2010 - 19:23
En respuesta a [quote=OMARE]Gran post, tengo por OMARE
Cada usuario tiene definido el tablespace por defecto donde se crean sus objetos si este no especifica nada. Para crear objetos en otros tablespaces sólo hay que dar al usuario los permisos necesarios y especificar el tablespace en la sentencia de creación del objeto.
En lugar de darle el privilegio UNLIMITED TABLESPACE al user, puedes asignar una cuota a cada TABLESPACE que vaya a utilizar. Sería algo así:
Hola Carlos, necesito crear
Subido por Atman (no verificado) el 12 Septiembre, 2013 - 11:25
El procedimiento que yo
Subido por Carlos el 20 Septiembre, 2013 - 09:28
En respuesta a Hola Carlos, necesito crear por Atman (no verificado)
El procedimiento que yo conozco es el que puedes consultar en el post Utilización de sinónimos para compartir objetos. Se trataría simplemente de crear un script que para cada objeto que quieras 'enmascarar' cree un sinónimo público con sólo su nombre.
La variante que propone ljmunozc de crear un trigger que altere la sesión para 'situar' al usuario en ese esquema me parece muy ocurrente, gracias por la aportación, aunque todo lo que tenga que ver con triggers hay que manejarlo con mucho cuidado, hay que tener siempre en cuenta que se le está cambiando automáticamente la sesión al usuario.
Si lo pruebas ya nos explicarás qué tal funciona.
Hola Carlos Tengo nivel súper
Subido por brisa (no verificado) el 20 Noviembre, 2013 - 18:33
Hola Carlos, necesito crear
Subido por virna naranjo (no verificado) el 23 Enero, 2014 - 15:15
Hola Carlos, necesito crear un usuario igualito a otro ya existente, es decir, mismas tablas, misma data, etc... Como lo hago? Cual es el mejor camino?