ver usuario sobre rol privilegios permisos listar grants esquema developer dar crear consultar asignar 12c 11g oracle oracle11g access-control

sobre - listar grants de usuario oracle



Cómo crear un usuario en Oracle 11g y otorgar permisos (8)

Como se mencionó anteriormente varias veces en los comentarios, el uso de los roles CONNECT , RESOURCE y DBA es desalentado por Oracle.

Debe conectarse como SYS para crear su rol y los usuarios a los que se asigna este rol. Puede usar SQL Developer o SQL * Plus como prefiera. No olvide mencionar la función SYSDBA en la cadena de inicio de sesión. connect_identifier usa diferentes sintaxis.

sqlplus sys/<<password>>@<<connect_identifier>> as sysdba

Digamos que tiene un 12cR1 como el que se proporciona como máquina virtual con el " Día de Oracle Technology Network Developer ". Las cadenas de conexión pueden ser (para conectarse a la PDB proporcionada):

sqlplus sys/[email protected]/orcl as sysdba sqlplus sys@"127.0.0.1/orcl" as sysdba -- to avoid putting the pw in clear

Tenga en cuenta que en Unix, las comillas tienen que ser escapadas, de lo contrario serán consumidas por el shell. Por lo tanto, " convierte en /" .

Luego, crea el rol MYROLE y le otorga otros roles o privilegios. Agregué casi lo mínimo para hacer algo interesante:

create role myrole not identified; grant create session to myrole; grant alter session to myrole; grant create table to myrole;

A continuación, crea el usuario MYUSER . La cadena siguiente identified by cual es la contraseña distingue entre mayúsculas y minúsculas. El resto no lo es También puede usar identificadores delimitados por SQL (rodeados por comillas " ) en lugar de identificadores regulares que se convierten en mayúsculas y están sujetos a algunas limitaciones. La cuota podría ser unlimited lugar de 20m .

create user myuser identified by myuser default tablespace users profile default account unlock; alter user myuser quota 20m on users; grant myrole to myuser;

Eventualmente, te conectas como tu nuevo usuario.

Tenga en cuenta que también puede modificar el perfil predeterminado o proporcionar otro para personalizar algunas configuraciones como el período de vencimiento de las contraseñas, el número de intentos de inicio de sesión fallidos permitidos, etc.

¿Puede alguien aconsejarme sobre cómo crear un usuario en Oracle 11g y solo otorgarle al usuario la capacidad de ejecutar solo un procedimiento almacenado en particular y las tablas en ese procedimiento?

¡No estoy seguro de cómo hacer esto!


Conectar como SISTEMA.

CREATE USER username IDENTIFIED BY apassword; GRANT CONNECT TO username; GRANT EXECUTE on schema.procedure TO username;

También puede necesitar:

GRANT SELECT [, INSERT] [, UPDATE] [, DELETE] on schema.table TO username;

a cualquiera de las tablas que usa el procedimiento.


La documentación de Oracle es completa, en línea y gratuita. Debes aprender a usarlo. Puede encontrar la sintaxis para CREATE USER aquí y para GRANT aquí ,

Para poder conectarnos a la base de datos, debemos otorgarle al usuario el privilegio CREATE SESSION .

Para permitir los nuevos derechos de usuario en un procedimiento almacenado, debemos otorgar el privilegio EXECUTE. El otorgante debe ser uno de estos:

  • el propietario del procedimiento
  • un usuario concedió ejecutar en ese procedimiento con la opción CON ADMIN
  • un usuario con el privilegio GRANT ANY OBJECT
  • un DBA u otra cuenta de súper usuario.

Tenga en cuenta que normalmente no necesitaríamos otorgar derechos sobre objetos usados ​​por un procedimiento almacenado para usar el procedimiento. El permiso predeterminado es que ejecutemos el procedimiento con los mismos derechos que el propietario del procedimiento y, por así decirlo, heredamos sus derechos al ejecutar el procedimiento. Esto está cubierto por la cláusula AUTHID. El valor predeterminado es definer (es decir, propietario del procedimiento). Solo si el AUTHID se establece en CURRENT_USER (el invocador, que es nuestro nuevo usuario) necesitamos otorgar derechos sobre los objetos utilizados por el procedimiento. Descubra más .


No use estos enfoques en entornos críticos como TEST y PROD. Los pasos a continuación solo se sugieren para el entorno local. Para mi servidor local, creo el usuario a través de estos pasos:

NOTA IMPORTANTE: Cree su usuario con las credenciales de usuario del SISTEMA. De lo contrario, puede enfrentar un problema cuando ejecute varias aplicaciones en la misma base de datos.

CONNECT SYSTEM/<<System_User_Password>>@<<DatabaseName>>; -- connect db with username and password, ignore if you already connected to database.

A continuación, ejecuta la secuencia de comandos siguiente

CREATE USER <<username>> IDENTIFIED BY <<password>>; -- create user with password GRANT CONNECT,RESOURCE,DBA TO <<username>>; -- grant DBA,Connect and Resource permission to this user(not sure this is necessary if you give admin option) GRANT CREATE SESSION TO <<username>> WITH ADMIN OPTION; --Give admin option to user GRANT UNLIMITED TABLESPACE TO <<username>>; -- give unlimited tablespace grant

EDITAR: Si tienes un problema con oracle ora-28001, la contraseña ha expirado y esto puede ser útil.

select * from dba_profiles;-- check PASSWORD_LIFE_TIME ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- SET IT TO UNLIMITED


Siga los pasos a continuación para crear un usuario en Oracle.
- Conectar como usuario del sistema

CONNECT <USER-NAME>/<PASSWORD>@<DATABASE NAME>;

- Crear consulta de usuario

CREATE USER <USER NAME> IDENTIFIED BY <PASSWORD>;

- Proporcionar roles

GRANT CONNECT,RESOURCE,DBA TO <USER NAME>;

- Proporcionar privilegios

GRANT CREATE SESSION GRANT ANY PRIVILEGE TO <USER NAME>; GRANT UNLIMITED TABLESPACE TO <USER NAME>;

- Proporcionar acceso a las tablas.

GRANT SELECT,UPDATE,INSERT ON <TABLE NAME> TO <USER NAME>;


CREATE USER USER_NAME IDENTIFIED BY PASSWORD; GRANT CONNECT, RESOURCE TO USER_NAME;



  • paso 1 .

    create user raju identified by deshmukh;

  • paso 2.

    grant connect , resource to raju;

  • paso 3.

    grant unlimitted tablespace to raju;

  • etapa 4.

    grant select , update , insert , alter to raju;