Las bases de datos, nos permiten crear distintos usuarios y otorgarles privilegios.
De las siguientes opciones que se muestran en el ejercicio, selecciona la cláusula que te permite crear un usuario: GRANT USER SHOW USER CREATE USER IDENTIFIED BY USER . Ordene la frase correctamente: (NombrePersona,tlf,CP) juanma@localhostClientes GRANT TO clientes SELECT ON. CREATE
USER
Manuel IDENTIFIED
BY
ManuPsw QUOTA UNLIMITED ON users
PROFILE
OPERADOR; true false. Ordena las siguientes opciones (siendo 1 el primer valor) de tal manera que formen una sentencia para eliminar permisos a un determinado usuario: sastreria On Insert from * REVOKE Select ana@localhost. Otra posibilidad que nos brindan las BBDD, es la actualización de un usuario...
Selecciona la correcta para creación de la actualización de un usuario: GRANT SELECT,
UPDATE
(nombreCliente, Telefono)
ON
Jardineria.Clientes
TO
Javier GRANT SELECT,
CREATE
(nombreCliente, Telefono)
IN
Jardineria.Clientes
FROM
Javier. Teniendo en cuenta todos los privilegios que podemos otorgar (Privilegios de inserción, actualización y borrado), selecciona la correcta GRANT SELECT,
INSERT
, DELETE,
UPDATE
on atp.jugadores to francisco@localhost
WITH
MAX_QUERIES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 20 GRANT SELECT,
INSERT
, REMOVE,
UPDATE
on atp.jugadores to francisco@localhost
OF
MAX_QUERIES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 20. Indica las características correctas de Oracle Database Server respecto de la normativa legal vigente sobre la protección de datos: Solo utiliza procedimientos. Estructuras de control de flujo. Uso de variables. No controla los errores y ni las excepciones. No tiene soporte en la programación orientada a objetos. Integrado con SQL. ¿Conoces cuáles son las características de los usuarios de Oracle? Relaciona cada término con su definición: Debe ser único e irrepetible. Su longitud máxima no debe sobrepasar los 30 caracteres. Además, solamente puede contener caracteres alfanuméricos y los signos ‘$’ y ‘_’ como caracteres especiales.
Espacio que posee el usuario para almacenar su información y límite de almacenamiento. En Oracle se denomina tablespac. Son los diferentes recursos de los que dispone el usuario del sistema. Concesión de funciones que pueden realizar los usuarios
. Relacionar / Arrastrar y soltar / Desplegables. ENUNCIADO: Relaciona cada término con su definición: Contiene el mismo rol que la anterior y, por defecto, tiene una serie de tablas ya creadas. Realiza tareas administrativas utilizando Enterprise Manager. Funciona como administrador de la base de datos (rol de DBA) y no interesa modificar su esquema.
Controla la aplicación Enterprise Manager. Oracle nos permite definir ciertas clausulas para los usuarios ¿sabes cuáles son? REVOKE Denegar la posibilidad a un usuario de acceder, manipular o ejecutar objetos concretos GRANT Ofrece la posibilidad a un usuario de acceder, manipular o ejecutar objetos concretos (tablas, vistas, secuencias, procedimientos, funciones o paquetes). EXECUTE Permite al usuario ejecutar rutinas almacenadas.
ALTER TABLE Modifica o borra rutinas almacenadas. Ahora nos centraremos en las características de sesiones sobre las bases de datos de Oracle.
Relaciona los roles predefinidos para ayudar a la administración de las bases: incluye “CREATE CLUSTER”, “CREATE INDEXTYPE”, “CREATE OPERATOR”, “CREATE PROCEDURE”, “CREATE SEQUENCE”, “CREATE TABLE”, “CREATE TIGGER” y “CREATE TYPE”. incluye únicamente el privilegio “CREATE SESSION” (que permite conectar a la base de datos). incluye todos los privilegios del sistema mediante la opción “WITH ADMIN OPTION”. Identifica los beneficios a la hora de trabajar con roles: Maneja los privilegios de forma estática, es decir, si se modifican los privilegios asociados al rol dichos privilegios no se actualizan en todos los usuarios. Simplifican el manejo de privilegios. Se pueden asignar diferentes permisos a un rol y este también puede ser asignado a distintos usuarios. Disponibilidad selectiva de privilegios. Los roles asignados a un usuario pueden ser activados o desactivados temporalmente y se pueden proteger con clave. El uso de roles aumenta el número de “GRANT” almacenados en el diccionario de datos, por lo que mejora la productividad. los roles que tenga cada usuario indicaran las tablas y acciones que podremos realizar con usuarios que estén en ese rol.
¿Es correcta esta sentencia de código?
REVOKE SELECT ON prueba.personas TO user No. Para quitar privilegios es con la sentencia DROP No. El TO es incorrecto. La sentencia es con FROM Es correcta No. Necesitas un UPDATE para actualizarlo. Vamos a ver las herramientas que nos proporciona el gestor de bases de datos para automatizar tareas.
Identifica las variables que NO son de PL/SQL son: Compuesto HOST BIND LOB Escalar. Un usuario puede configurar su sesión y su perfil con las variables SESSION y PROFILE. Idenfitica el correcto CREATE
profile
OPERADOR LIMIT
SESSION_PER_USER 5
CPU_PER_
session
UNLIMTED
IDLE_TIME 10
connect
_TIME 120 CREATE
profile
OPERADOR LIMIT
SESSION_PER_USER 5
CPU_PER_
user
UNLIMTED
IDLE_TIME 10
connection
_TIME 120. Une cada concepto con su definición de valores de entrada/salida: El valor viene del proceso de llamada, es un dato de entrada y su valor no se cambia. Es el valor por defecto. En una salida de programa sin error, el valor del argumento devuelve al proceso de llamada. Es una variable de entrada/salida. Los tipos de datos que nos podemos encontrar a la hora de trabajar con las bases de datos y automatizar tareas, son muy variados y nos permiten definir nuestras variables.
Relaciona cada característica con su definición respecto de los tipos de datos: Almacena cadenas de caracteres de longitud variable, tamaño máximo 2 Gb Dirección física de una fila de la BDD Almacena objetos binarios Almacena “TRUE”, “FALSE” o “NULL” Almacena objetos binarios de hasta 2 Gb. DECLARE
v_nom empleados.nombre%type;
v_ape
empleados.apellido%type
;
BEGIN
Select nombre,apellido
into v_nombre, v_ape
from Empleados
where dni=23564390;
dbms_output.put_line
('Nombre: '||v_nombre|| 'Apellido: '||v_apellido );
EXCEPTION
WHEN
no_data_found
THEN
dbms_output.put_line( 'No existe empleado con ese DNI');
WHEN OTHERS THEN
dbms_output.put_line ('otros errores');
END; Es correcta Es incorrecta . Hay muchas funciones que nos permiten trabajar con Oracle. Identifica que función de Oracle, NO es la correcta: User: usuario del sistema de base de datos. NLS_Session_Parameters: parámetros de sesión. Sysdate: fecha por mes DUAL: tabla del sistema donde encontramos la fecha y otros parámetros. Rowid: identificador de la fila. . IF fecha_nac < ’11-06-1982’ THEN
salario:= salario *1.15;
ELSE
salario:= salario* 1.05;
END IF;
SELECT Nombre, CASE EstadoCivil
WHEN 'C' THEN 'Casado/a'
WHEN
'S' THEN 'Soltero/a'
WHEN 'D' THEN 'Divorciado/a'
ELSE 'Otros'
END
AS "Estado Civil"
FROM tablaEstado;
DECLARE -- Declaración y asignación de variables
total NUMBER(9) := 0;
cont NUMBER(6) := 0;
BEGIN
LOOP
cont := cont + 1; -- Incrementamos la variable
total := total + cont * cont;
EXIT WHEN total = 25000;
END LOOP;
END correcto incorrecto. Centrándonos en variables de salida en Oracle. Identifica qué características de SET SERVEROUTPUT ON son las correctas: Es una librería de PL/SQL. Activa el visionado de los mensajes por consola. Activar la salida de DBMS. Nos sirve para insertar datos en la tabla. Sustituye los *******
CREATE OR REPLACE
*******
adjust_salary( in_employee_id IN EMPLOYEES.EMPLOYEE_ID%TYPE, in_percent IN
********
)
IS
BEGIN
-- update employee's salary
UPDATE employees
*****
salary = salary + salary * in_percent / 100
WHERE employee_id = in_employee_id;
END; procedure,number,set function,number,set procedure,number,on. sustituye los asteriscos:
CREATE OR
*******
FUNCTION dbo.ufnGetInventoryStock(@ProductID int)
RETURNS int
AS
BEGIN
DECLARE @ret int;
SELECT @ret = SUM(p.Quantity)
FROM Production.ProductInventory p
********
p.ProductID = @ProductID
AND p.LocationID = '6';
IF (@ret IS NULL)
SET @ret = 0;
******
@ret;
END; replace,where,return modify,in,return delete,for,return. Un cursor nos permitirá recorrer fila a fila, leer y modificar un conjunto de resultados.
Indica qué característica es incorrecta sobre cursores: Con cada cursor implícito debe existir la palabra clave “INTO”. Las variables que reciben los datos devueltos por el cursor tienen que contener un tipo diferente de dato que las columnas de la tabla. Los cursores implícitos solo pueden devolver una única fila. En caso de que se devuelva más de una fila (o ninguna fila) se producirá una excepción. No se preocupe si aún no sabe que es una excepción, le valdrá conocer que es el medio por el que PL/SQL gestiona los errores. . sustituye los *****
DECLARE
identificador NUMBER;
BEGIN
SELECT nombre INTO identificador
FROM Alumno
******
cod = 100;
EXCEPTION
******
NO_DATA_FOUND OR
*******
THEN
DBMS_OUTPUT.PUT_LINE ('El error es: ' || SQLCODE);
DBMS_OUTPUT.PUT_LINE (SQLERRM);
END; where,when,too_many_rows from,on,too_many_rows. Relaciona cada atributo sobre los cursores con su definición correspondiente: Devuelve un valor booleano, “TRUE” si está abierto el cursor o “FALSE” si está cerrado. Devuelve un valor booleano, “TRUE” si tras la recuperación más reciente no se recuperó ninguna fila. Devuelve un valor booleano, “TRUE” si tras la recuperación más reciente se recuperó una fila. Retorna el número de filas devueltas hasta el momento. sustituye los asteriscos:
DECLARE
*****
EXCEPTION;
valor NUMBER;
BEGIN
valor:= -1;
IF valor < 0 THEN
*****
VALOR_NEGATIVO;
END IF;
EXCEPTION
WHEN VALOR_NEGATIVO THEN
*********
('El valor no puede ser negativo');
END; valor_negativo,raise,dbms_output.put_line valor_negativo,increase,print. sustituye los asteriscos
SET
********
ON;
DECLARE
CURSOR calumno
IS
SELECT nombre, apellidos
FROM Alumnos;
vnombre VARCHAR2(50);
vapellidos VARCHAR2(50);
BEGIN
OPEN calumno;
LOOP
*****
calumno INTO vnombre, vapellidos;
EXIT
******
calumno%NOTFOUND;
dbms_output.put_line('Nombre: ' || vnombre || ' apellido: ' || vapellidos);
END LOOP;
CLOSE SERVEROUTPUT,fetch, when SERVEROUTPUT,fetch, for SERVEROUTPUT,for, when. sustituye los asteriscos:
DECLARE
lugar_var dept.lugar%TYPE;
deptnum dept.dept_no%TYPE;
CURSOR lugares IS SELECT lugar FROM
******
WHERE dept.dept_no = deptnum;
BEGIN
deptnum := 10;
OPEN lugares;
FETCH lugares INTO
*******
IF (lugares%NOTFOUND) THEN
RAISE SIN_DATOS;
END
******
;
***********
('LUGAR: ' || lugar_var); --se imprime el valor por pantalla
CLOSE lugares;
EXCEPTION
WHEN INVALID_NUMBER THEN
dbms_output.put_line(' El parametro no es un numero');
WHEN SIN_DATOS THEN
dbms_output.put_line(' El parametro no es un numero');
WHEN OTHERS THEN
dbms_output.put_line(' El parametro no es un numero');
END; dept ,lugar_var ,if,dbms_output.put_line
dept ,lugar_var ,when,dbms_output.put_line lugar_var,when,dbms_out.put_line. Centrándonos ahora en la parte de los disparadores o triggers...indica cuáles de estas afirmaciones sobre triggers son correctas: Realizar cambios en la base de datos de forma que el usuario debe autorizar esos cambios Forzar reglas de integridad que son difíciles de definir a partir de constraints. Generar automáticamente valores de columnas derivadas en base a un valor proporcionado por una sentencia. Sincronizar el mantenimiento de tablas duplicadas que están localizadas en nodos iguales de una base de datos en paralelo. sustituye por los asteriscos:
CREATE OR
*******
TRIGGER empleados_fechaBaja_fechaAlta BEFORE INSERT OR UPDATE OF FechaAlta, FechaBaja ON EMPLEADO
FOR
*****
ROW
BEGIN
IF (:new.FechaBaja IS NOT NULL) AND (:new.FechaBaja <= :new.FechaAlta) THEN
********
(-20600, 'La fecha de la baja debe ser nula o mayor que la fecha de alta');
END IF;
END; replace,each,raise_application_error
delete,for,raise_application_error.
|