b4t2 - Admon BBDD Flashcards
Qué dos tipos de mecanismos de seguridad se establecen en las BBDD por el DBA?
Disponibilidad -> HA
Vistas -> Permisos
En Oracle, cuando se crea una instancia de Oracle, cuántas BBDD se crean?
Una sola BBDD, no es una por aplicación como SQLServer, MySql, etc…
Cuáles son los puertos de ..?
Oracle
MySql
SQL Server
PostgreSQL
Oracle -> 1521 (antes, el clásico), 2483 (ahora)
MySql -> 3306
SQLServer -> 1433
PostgreSQL -> 5432
Añadir a excel de puertos
Qué son los siguientes conceptos de la arquitectura de Oracle?
- Proceso Usuario
- PGA
- Listener
- SGA
- Procesos en segundo plano
- Proceso Usuario -> Proceso externo que es el que quiere usar Oracle
- PGA (Program Global Area)-> Proceso en servidor que atiende al Proceso de Usuario. Da acceso al área global
- Listener -> Escucha las peticiones del Proceso Usuario para ponerle en contacto con el PGA
- SGA (Server Global Area) -> Área global de Oracle. Zona de memoria donde se guardan los datos globales de la instancia. Son cachés llamadas pools.
- Procesos en segundo plano -> Procesos propios de la instancia de Oracle para sus distintas fuciones, como el DBWn (DB writer), LGWR (para logs), PMON, SMON, CKPT,…
En cuanto a la estructura lógica de almacenamiento en Oracle, qué elementos hay, de arriba a abajo?
Base de datos
Tablespaces -> Sirve para agrupar segmentos de objetos (tablas, índices, etc…). Se puede almacenar físicamente en uno o varios archivos de datos (data files).
Segmentos -> Tabla, Índice, Undo, LoB, …
Extensión (extend) -> Espacio contiguo de bloques
Bloques -> Bloques lógicos de datos. Se mapea con uno o varios bloques del S.O., són múltiplos de estos bloques del S.O.
Qué tablespaces por defecto hay en Oracle y para qué son?
USERS
SYSTEM -> Diccionario de datos
SYSAUX
Qué tres tipos de ficheros tiene una Base de Datos SQL Server y qué extensión tienen?
Primary (.mdf) -> Principales, apuntan al resto
Secondary (.ndf) -> Opcionales por usuario
Transaction log (.ldf) -> Logs para recuperar la BBDD
Dentro de las acciones que suele hacer un BDA está la de creación de tablespaces. ¿Cómo es la sentencia?
CREATE TABLESPACE ts_data/ts_indices…
DATAFILE ‘var/data/oracle/ts_data_01.dbf’ -> Esta cláusula DATAFILE se puede poner varias veces, ya que puede haber varios datafiles para un tablespace
SIZE 100
AUTOEXTEND ON
….;
Dentro de las acciones que suele hacer un BDA está la de creación de tablas. ¿Cómo es la sentencia?
CREATE TABLE alumnos
TABLESPACE ts_data -> Indica en qué ts se crea la tabla
STORAGE (INITIAL 20K NEXT 30K MAXEXTENS 50)
….;
Dentro de las acciones que suele hacer un BDA está la de creación de usuarios y de asignarle una contraseña , asignándolo a un tablespace ¿Cómo es la sentencia?
CREATE USER nominasowner
IDENTIFIED BY “password”
DEFAULT TABLESPACE ts_data
TEMPORARY TABLESPACE ts_tem;
Qué es un esquema en Oracle y qué pasos se siguen para crearlo y dar permisos a un usuario?
En Oracle es como decir usuario. Es necesario crear un usuario “owner” para gestionar y representar el esquema.
Hay que hacerle un CREATE USER y luego un GRANT CONNECT TO tabla, para que el usuario tenga conexión con las tablas del esquema
Qué es el tipo de permiso CONNECT en oracle?
Es un rol que incluye CREATE SESSION y otros privilegios del sistema como CREATE TABLE, etc..
Se le suele hacer al usuario owner del esquema de tablas
GRANT CONNECT TO tabla
Para qué se usa la herramienta RMAN en Oracle?
Para hacer back_ups
BACKUP TABLESPACE ts_data
FORMAT /location
TAG ‘…’
FROM TIME … UNTIL TIME …
Para qué se usa el PL/SQL en Oracle?
Como lenguaje para procedimientos almacenados
El estándar de sql se llama SQL/PSM
Cómo se crean columnas autoincrementales en Oracle?
CREATE SEQUENCE
Qué hay que hacer en Oracle para que un usuario vea las tablas de otro?
Crear un sinónimo y darle permisos
CREATE SYNONIM
+
GRANT SELECT ….
Cuál es la herramienta de solucion de cluster (HA) en Oracle?
Oracle RAC - Real Application Clusters
Qué es una vista materializada en Oracle?
Con qué sentencia se crea?
Es una vista pero que no hace select a las tablas, es una foto “estática” entre los refrescos que se establezcan. Es útil cuando los datos de esa select no cambian mucho.
CREATE MATERIALIZED VIEW nombre_vista
..
REFRESH {FAST|COMPLETE|FORCE|NEVER}
…
AS SELECT … FROM TABLE …..
En MySQL / Maria DB, existen los Motores de almacenamiento, que se pueden asignar a una tabla al crearla para indicarle con qué formato o motor de almacenamiento se va a crear.
¿Cuáles hay?
InnoDB -> Es actualmente el motor por defecto. Soporta transaccionalidad, por tanto necesario si hay inserts, updates o deletes
MyISAM -> Es ligero y crash safe, fue el motor por defecto hasta InnoDB. No es transaccional, por lo que solo vale si no necesitas garantizar ACID,, no soporta foreign keys, soporta índices FULLTEXT.
Aria -> Es el nuevo MyISAM en MariaDB
Memory
NDB
XtraDB -> Es una mejora de InnoDB
Qué tres ficheros por tabla se crean en MySql/MariaDB con el motor de almacenamiento MyISAM?
frm -> formato tabla
myd -> datos
myi -> índices
Qué son los ficheros BinLog y RelayLog en MySQL / MariaDB?
Se usan en la estrategia de HA de replicación. Consiste en que las sentencias le llegan al nodo master, y este las guarda en el BinLog. Luego asíncronamente les manda esas sentencias a los nodos slave a sus RelayLog.
En MYSql y MariaDB hay una estrategia de HA basada en la deslocalización en cluster.
Están separados o distribuidos en cluster los nodos de servicio sql y de datos
Los nodos de datos en cluster, en MYSQL/ MariaDB se llaman NDB Cluster
Con qué comando se hacen las copias de seguridad en MySql/MariaDB?
mysqldump - u userName -p databaseName > fichero.sql/o .bkp
–all-databases
–lock-tables = true/false
–no-data
–add -drop -database
Genera un fichero con scripts de creación y poblado de datos.
Respecto a los ficheros de configuración en Debian de MySQL/MariaDB, qué son los siguientes?
etc/mysql/my.cnf
etc/alternatives/my.cnf
etc/mysql/conf.d/varios fiheros…
etc/mysql/mariadb.conf.d/..varios ficheros…
etc/mysql/my.cnf -> El típico donde estaba todo, ahora es un enlace simbólico al siguiente fichero.
etc/alternatives/my.cnf -> Actualmente como la config es modular, ya el contenido no está aquí, sólo tiene “imports” de los dos siguientes grupos de ficheros
etc/mysql/conf.d/varios fiheros… -> Configuración
etc/mysql/mariadb.conf.d/..varios ficheros… -> Configuración modular
Para qué sirve el comando de MySQL / Maria DB maria-db-secure-installation?
Es un enlace simbólico al comando mysq_secure_installation.
Es un script de linux que permite empezar una instalación de cero o volver a restablcerla.
- Restablecer contraseñas de las cuentas root
- Borrar cuentas de usuario de root o anónimas
- Borrar la base de datos de test por defecto
Echar un vistazo a las opciones del comando mysqladmin
Echar un vistazo a los comandos de administración de mysql del laboratorio del tema
Qué similitudes y diferencias tiene PostgreSQL con MariaDB/MySQL?
Similutudes:
También se crean databases y schemas, se pueden definir tablespaces para gestionar tablas, índices, etc …
Diferencias:
- Toda la seguridad se gestiona creando roles
CREATE ROLE nombreRol LOGIN(rol de usuario)|SUPERUSER|CREATEDB|CREATEROLE
- Se pueden particionar tablas
CREATE TABLE medidas (…..) PARTITION BY RANGE (campo) - Se maneja el concepto de herencia para tablas, para heredar campos de otra
CREATE TABLE cliente (…) INHERITS (persona); - Existe la seguridad basada en filas (RLS)
CREATE POLICY politica ON tabla FOR SELECT TO usuario USING (filtro)
+
ALTER TABLE tabla ENABLE ROW LEVEL SECURITY; - Se pueden implementar procedimientos almacenados en 4 lenguajes (PL/pgSQL, PL/TCL, PL/Perl, PL/Python)
- Tiene replicación master/slave parecida a MySQL, mediante archivos WAL (write ahead log/REDO) que guarda info de transacciones y cambios
- Tiene un modelo de concurrencia avanzado (MVCC - Multiversion Concurrency Control): Cada transacción tiene un snapshot de datos
En qué ficheros se encuentra en PostgreSQL la configuración de autenticación de clientes y la configuración del servidor
Autenticación -> /etc/pg_hba.conf
Servidor -> /etc/postgresql/9.6/main/postgresql.conf
Cómo se gestiona la seguridad en PostgreSQL y cómo es la sentencia?
- Toda la seguridad se gestiona creando roles
CREATE ROLE nombreRol LOGIN(rol de usuario)|SUPERUSER|CREATEDB|CREATEROLE
Cómo se pueden particionar tablas en PosgreSQL?
- Se pueden particionar tablas
CREATE TABLE medidas (…..) PARTITION BY RANGE (campo)
Cómo es la sentencia en PostgreSQL una tabla herede campos de otra?
- Se maneja el concepto de herencia para tablas, para heredar campos de otra
CREATE TABLE cliente (…) INHERITS (persona);
Cómo se puede aplicar una política restrictiva por usuario y fila en PosgreSQL?
- Existe la seguridad basada en filas (RLS)
CREATE POLICY politica ON tabla FOR SELECT TO usuario USING (filtro)
+
ALTER TABLE tabla ENABLE ROW LEVEL SECURITY;
Con qué lenguajes se pueden crear procedimientos almacenados en PostgreSQL?
- Se pueden implementar procedimientos almacenados en 4 lenguajes (PL/pgSQL, PL/TCL, PL/Perl, PL/Python)
¿Qué es Navicat Premium en el entorno de administración de bases de datos?
Es un administrador de bases de datos propietario, de múltiples conexiones, que permite conectarse a diversas bases de datos como MySQL, MariaDB, SQL Server, etc. Simultáneamente en una sola aplicación.
Los niveles de aislamiento de un sistema gestor de bases de datos definidos en el estándar ANSI/ISO con respecto a trabajar con transacciones son:
Serializable, lectura confirmada, lectura no confirmada y lectura repetible.