¡Ayuda al desarrollo del sitio, compartiendo el artículo con amigos!

Introducción a Oracle GRANT

Una cláusula GRANT de Oracle es una declaración del lenguaje de control de datos. Se utiliza para proporcionar ciertos tipos de Derechos a los Usuarios. La base de datos se puede compartir con otros usuarios usando el comando Grant. Se utiliza para la seguridad de la base de datos. Es un lenguaje de control de datos (DDL). La seguridad sobre las bases de datos se aplica definiendo y describiendo objetos de esquema separados y otorgando los privilegios requeridos sobre ellos. En Oracle, los privilegios se pueden otorgar mediante el comando Otorgar. El comando Grant se utiliza cuando la base de datos debe compartirse con otros usuarios.A los otros usuarios se les otorga un cierto tipo de Derechos. El comando de concesión se puede emitir no solo en un objeto de tabla de Oracle, sino también en vistas, sinónimos, índices, secuencias, etc. En un solo comando de concesión, se pueden emitir múltiples privilegios para un usuario. El propietario de ese objeto o el propietario de la base de datos puede emitir un comando de concesión en un objeto. El usuario que tiene la opción ADMINISTRADOR o tiene el rol de otorgar cualquier privilegio puede emitir un comando de concesión en un objeto.

Sintaxis

A continuación se muestra la sintaxis de Oracle GRANT:

CONCESIÓN,EN;

Explicación:

PrivilegeName_1/ _2/ _N:Puede ser un nombre de privilegio.

ObjectName: el nombre del objeto puede ser un objeto de Oracle, es decir, tabla, vistas, sinónimos, índices y secuencia, etc.

Usuario: Usuario que recibirá el privilegio.

Rol: No es un usuario sino un grupo de privilegios que se pueden asignar a un Usuario u otro Rol.

¿Cómo funciona el comando GRANT en Oracle?

La cláusula GRANT se utiliza para evitar que otros usuarios realicen cualquier operación innecesaria del objeto. El comando Grant permite que ese usuario específico realice esa operación específica u otorgada en ese objeto Oracle específico. Para que ese usuario desconocido no pueda acceder a ningún objeto o dato.

Lista de algunos privilegios de uso común:

abajo está la lista de privilegios usados:

SELECCIONARINSERTUPDATEDELETEREFERENCIASALTEREXECUTEINDEXTODOS
Tipo de privilegioDescripción
Permite a los usuarios realizar sentencias SELECT en ese objeto.
Permite a los usuarios realizar INSERTAR registros en ese objeto.
Permite a los usuarios realizar ACTUALIZAR registros en ese objeto.
Permite a los usuarios realizar ELIMINAR registros en ese objeto.
Permite a los usuarios crear una restricción que se refiera a ese objeto.
Permite a los usuarios realizar declaraciones ALTER TABLE para cambiar la definición de ese objeto.
Permite a los usuarios compilar o ejecutar funciones/procedimientos directamente.
Permite a los usuarios crear un índice en ese objeto con la declaración de creación de índice.
Proporciona acceso total a los usuarios.

Ejemplos para implementar Oracle GRANT

Implementaciones del comando GRANT con ejemplos:

En esta sección, veremos la implementación del comando GRANT de Oracle y su comportamiento. Para eso, crearemos un usuario para comprender el comportamiento del comando Oracle GRANT.

1. Privilegio CREAR de Oracle

Paso 1: La sesión actual inició sesión como usuario de SCOTT e intentó crear un nuevo usuario.

Código:

CREAR USUARIO EDUCBA IDENTIFICADO POR EDUCBA_1;

Salida:

Explicación: En el ejemplo anterior, un usuario de Scott intentó crear un nuevo usuario pero devuelve un error de "privilegios insuficientes". Porque el usuario (Scott) no tiene el privilegio de crear un nuevo usuario para la base de datos.

Paso 2: Ahora conectado a la sesión actual como SYSDBA. Es como un rol de administrador para la base de datos. Ahora intentará crear un usuario en esta sesión

Código:

CREAR USUARIO EDUCBA IDENTIFICADO POR EDUCBA_1;

Salida:

Explicación: Ahora el usuario (EDUCBA) se creó con éxito.Por lo tanto, los privilegios son esenciales para que los usuarios realicen cualquier operación en la base de datos. Pero el usuario EDUCBA no tiene ningún privilegio, incluso no tiene que crear un privilegio de sesión y por eso el usuario no puede iniciar sesión en la base de datos.

Paso 3: Para iniciar sesión en la base de datos, el usuario debe crear un privilegio de sesión.

Código:

CONCEDER CREAR SESIÓN A EDUCBA;

Salida:

Explicación: En la consulta anterior, SYSDBA proporcionó un privilegio de sesión de creación a EDUCBA. Ahora el usuario "EDUCBA" ha creado con éxito una sesión y ha iniciado sesión en DB.

CONSEJO: De la misma manera, los propietarios de objetos pueden OTORGAR privilegios a los usuarios.

2. Cómo comprobar los privilegios recibidos

Se pueden consultar todos los privilegios recibidos por el usuario ‘EDUCBA’ o cualquier otro usuario. Para ello, el usuario debe iniciar sesión y ejecutar la siguiente consulta SQL.

Código:

SELECCIONARDESDE USER_SYS_PRIVS;

Salida:

Explicación: En el ejemplo anterior, el usuario “EDUCBA” solo ha creado privilegio de sesión. Por lo que EDUCBA no puede acceder ni realizar ninguna operación excepto crear una sesión.

Código:

SELECTFROM Empleado;

Salida:

Explicación: En el ejemplo anterior, el usuario "EDUCBA" intenta acceder a un objeto "Empleado" y devuelve un error porque el usuario no tiene ningún privilegio excepto crear una sesión. Para acceder a los objetos o realizar cualquier operación, requiere los respectivos privilegios.

CONSEJOS: En lugar de proporcionar privilegios a los usuarios, es mejor crear una función, asignar PRIVILEGIOS a esa función y luego otorgar esa función a varios usuarios y funciones.

Roles reduce el esfuerzo de otorgar privilegios a los usuarios de uno en uno. La sintaxis para la creación de funciones a continuación:

CREAR ROL IDENTIFICADO POR;

Revocar se usa para eliminar los privilegios de los usuarios o Roles.

Conclusión

El comando Oracle GRANT es un comando muy útil que permite a los usuarios realizar operaciones específicas en el objeto específico. Esto también es muy útil por motivos de seguridad. Sin el privilegio, los usuarios no están autorizados a operar en los objetos DB.

¡Ayuda al desarrollo del sitio, compartiendo el artículo con amigos!