2012-08-11 13 views

Respuesta

8

Para crear un nuevo usuario, utiliza el comando "create user". Así que un comando de usuario típico sería crear:

create user test identified by test default tablespace mytbsp. 

Por supuesto, es necesario sustituir los valores para el usuario, contraseña y tablas con valores diferentes. Sin embargo, le recomiendo que eche un vistazo a la documentación de Oracle http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htm.

El siguiente paso es otorgar al usuario los derechos correspondientes. Darle a un usuario todos los derechos es un enfoque muy malo ya que también le daría privilegios de dba. Lo que en su lugar es para darle privilegios de conexión y los permisos a su tablespace predeterminado. También es mejor usar roles en lugar de otorgar los derechos directamente. Entonces, si tiene que otorgar los derechos nuevamente, solo necesita otorgar el rol. El primer paso es crear la función:

GRANT CREATE session, CREATE table, CREATE view, 
     CREATE procedure,CREATE synonym, 
     ALTER table, ALTER view, ALTER procedure,ALTER synonym, 
     DROP table, DROP view, DROP procedure,DROP synonym 
     TO MyRole; 

Esta declaración no está terminada, se puede requerir derechos adicionales (mantenimiento de índices, por ejemplo), pero echar un vistazo a la documentación de Oracle en línea.

Después de eso, otorga la función al usuario recién creado.

GRANT myrole to test; 
+1

¿Se puede hacer GRANT ALL en MyRole? –

+1

como expliqué, este es un enfoque realmente malo. Básicamente haces de todos un dba, deshabilitando todos los privs, realmente necesitas pensar en la seguridad – steve

+0

¿Cómo decido qué privilegios otorgar y cuáles revocar? –

4

Cree el usuario:

create user user_name identified by password ; 

conceder los privilegios:

grant all privilege to user_name; 

Si desea ver el número de privilegios:

select * from system_privilege_map where neme like '%PRIV%'; 

Si desea ver los privilegios asignados a los usuarios:

select count (*) , grantee 
from dba_sys_privs 
where grantee in ('user1','user2') 
group by grantee ; 
Cuestiones relacionadas