Oracle - PERMISO USUARIO

 
Vista:

PERMISO USUARIO

Publicado por sinefectos (2 intervenciones) el 25/08/2010 16:54:24
Buenos dias,

me conecto a una web donde esta instalado el iSQLplus para hacer pruebas, con el usuario SYSTEM que viene por defecto.

quiero crear un usuario, oper por ej, que pueda crear una tabla y hacer algunos ejercicios.

He probado desde SYSTEM con create user oper identified by oper, grant oper ... etc etc he leido algo en google pero me he perdido y he tenido la torpeza de no anotar lo que iba haciendo, con lo cual no tendria problemas en crear un usario "oper2" de cero, para que me permita crear una tabla.
actualmente oper al crear una tabla me dice que no existe permisos en el namespace o algo asi, como verán estoy muy perdido, he leido sobre roles, permisos, etc todo en google ´pero no me queda muy claro ciertas cosas y no puedo hacer una pregunta concreta porque no entiendo muy bien todo, digo esto porque estuve intentando hacerlo por mí mismo antres de preguntar pero tengo algunas trabas...

¿alguien me puede indicar por favor, cómo debería crear un usuario "oper2" por ej, para que éste pueda crear una tabla, actualizarla y hacer pruebas sobre ella, para ir practicando el lenguaje pl/sql a nivel inicial, y no correr algun riesgo con el usuario SYSTEM ?

gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PERMISO USUARIO

Publicado por Sergio (39 intervenciones) el 25/08/2010 17:35:53
Recomendación para quienes están iniciando en Oracle base de datos, conceptos de Oracle:

http://www.oracle.com/pls/db102/to_toc?pathname=server.102%2Fb14220%2Ftoc.htm&remark=portal+%28Getting+Started%29

Tu problema, al parecer, es que el usuario que creaste no tiene permisos sobre el 'tablespace' el cual seguramente es users o si no existe users entonces será system.

Desde tu herramienta de ejecución de SQL favorita conectado como system has lo siguiente:

grant unlimited tablespace to oper;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PERMISO USUARIO

Publicado por sinefectos (2 intervenciones) el 25/08/2010 17:42:36
gracias por tu rta, estoy viendo el link que has puesto, es bastante extenso, voy a ver si me queda claro desde allí

probaré tu respuesta también en un par de horas y te digo que tal, pero me surge una duda, ¿dar estos permisos ilimitados a oper, no sería lo mismo que usar el SYSTEM ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PERMISO USUARIO

Publicado por Sergio (39 intervenciones) el 25/08/2010 19:26:50
No, son cosas totalmente distintas. Con la instrucción GRANT UNLIMITED TABLESPACE lo único que haces es darle permisos al usuario oper para pueda almacenar las tablas e índices en el tablespace en cuestión, nada más. Para crear tablas, índices, vistas, sinónimos, etc. con oper es necesario asignarle estos permisos también, es decir, puedes tener asignado un tablespace pero no privilegios para crear objetos en el o viceversa puedes tener privilegios para crear objetos pero no tener permiso para almacenarlos.

Ejemplo sencillo:

SQL> create user test23 identified by welcome default tablespace test;

User created.

SQL> grant create session to test23;

Grant succeeded.

SQL> grant create table to test23;

Grant succeeded.

SQL> conn test23/welcome
Connected.
SQL> create table test (id number);
create table test (id number)
*
ERROR at line 1:
ORA-01950: no privileges on tablespace 'TEST'

de aqui que al usuario test23 le tengo que asignar el permiso sobre el tablespace que va a usar:

SQL> conn system@orcl
Enter password:
Connected.
SQL> grant unlimited tablespace to test23;

Grant succeeded.

SQL> conn test23/welcome
Connected.
SQL> create table test (id number);

Table created.

Oracle viene con roles específicos para ciertas tareas, el más usado para desarrolladores es uno que se llama 'resource' para ambientes de desarrollo. Por lo que para crear un usuario para un desarrollador lo más sencillo que puedes hacer es:

SQL> create user test23 identified by welcome default tablespace test;

User created.

SQL> grant create session to test23;

Grant succeeded.

SQL> grant resource to test23;

Grant succeeded.

SQL> conn test23/welcome
Connected.
SQL> create table test (id number);

Table created.

tan sencillo como eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:PERMISO USUARIO

Publicado por sinefectos (1 intervención) el 21/09/2010 13:48:55
Sergio, muchas gracias por tu ayuda.

había perdido el link del este foro, lamento la demora, pero me he conectado para daros las gracias.

Ha funcionado perfefcto, y lo que me hacía falta era el GRANT RESOURCE, como me has indicado

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PERMISO USUARIO

Publicado por Iván Leal (1 intervención) el 21/06/2013 17:32:56
Hola, muchas gracias por el comentario y por el paso a paso, asi es que uno aprende, muchas gracias me ha sido de utilidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar