Curso sql server_administracion

48
SQL Server 2005 Salvador Ramos [email protected]

description

Curso de administración de SQL Server, incluye temas como backup y restore, infraestructura de seguridad, programación de tareas, servicios, instalar SQL Server y otros. Accede a estas slides para ver todo el detalle

Transcript of Curso sql server_administracion

Page 1: Curso sql server_administracion

SQL Server 2005

Salvador Ramos

[email protected]

Page 2: Curso sql server_administracion

Agenda

Visión general del producto

Administración

Implementación (T-SQL)

Page 3: Curso sql server_administracion

Agenda (administración)

Instalación

Bases de datos del sistema

Herramientas

Bases de datos

Gestión de la seguridad

Estrategias de copias de seguridad

SSIS y Programación de Tareas

Mantenimiento y control

Page 4: Curso sql server_administracion

Agenda (implementación)

Introducción

Elementos de Transact SQL

– DDL, DCL y DML

– Procedimientos almacenados (SP)

– Funciones definidas por el usuario (UDF)

– Triggers (desencadenadores)

– Mejora del rendimiento

Page 5: Curso sql server_administracion

Agenda

Visión general del producto

Administración

Implementación (T-SQL)

Page 6: Curso sql server_administracion

Servicios

Motor Cliente / Servidor

Servicios

Page 7: Curso sql server_administracion

Componentes (2005)

SQL Server 2005

Relational Database Engine

.NET CLR

Analysis Services

Native HTTP Support

Service Broker Replication

Reporting Services Full-Text Search

Notification Services

Integration Services

Page 8: Curso sql server_administracion

Agenda

Visión general del producto

Administración

Implementación (T-SQL)

Page 9: Curso sql server_administracion

Administración

Instalación

Bases de datos del sistema

Herramientas

Bases de datos

Gestión de la seguridad

Estrategias de copias de seguridad

SSIS y Programación de Tareas

Mantenimiento y control

Page 10: Curso sql server_administracion

Instalación

Recomendaciones generales

– No instalar las bases de datos en la misma partición que el S.O.

– Personalizada

– Instalar último Service Pack

Ver documento de instalación

Page 11: Curso sql server_administracion

BBDD del sistema

Master

Model

Msdb

Tempdb

Page 12: Curso sql server_administracion

Herramientas

SQL Server Management Studio

Configuración de superficie (S.A.C.)

SQL Server Configuration Manager

SQL Server Profiler

Business Intelligence Dev. Studio BIDS

*** Libros en Pantalla ***

Page 13: Curso sql server_administracion

Herramientas

Demo

– “Manos a la obra, veamos las herramientas”

– Propiedades del servidor (desde el SQL Server Management Studio)

Page 14: Curso sql server_administracion

Administración

Instalación

Bases de datos del sistema

Herramientas

Bases de datos

Gestión de la seguridad

Estrategias de copias de seguridad

SSIS y Programación de Tareas

Mantenimiento y control

Page 15: Curso sql server_administracion

Objetos de BBDD

Diagramas

Esquemas (2005)

Tablas

– Constraints

– Triggers (DML y DDL -2005-)

– Indices

Clustered (agrupados)

Non Clustered (no agrupados)

Page 16: Curso sql server_administracion

Objetos de BBDD

Vistas

Procedimientos almacenados

Funciones Definidas por el Usuario

Usuarios (Users)

Funciones (Roles)

Page 17: Curso sql server_administracion

Objetos de BBDD

Demo

– “Veamos estos objetos desde el SQL Server Management Studio”

– “Veamos los archivos .mdf, .ndf y .ldf desde el explorador de windows”

Page 18: Curso sql server_administracion

Tipos de datos (v. BOL)

bigint int smallint tinyint bit decimal - numeric float Real Money / smallmoney datetime smalldatetime

char / nchar varchar / nvarchar text / ntext binary varbinary image cursor sql_variant table timestamp uniqueidentifier

Page 19: Curso sql server_administracion

Desbordamiento 8Kb

Máxima longitud de fila 8060 bytes

Restricción menos estricta en 2005

– Varchar, nvarchar, varbinary, sql_variant pueden superar la restricción

– Hasta 8000bytes por columna

– Unidad de asignación ROW_OVERFLOW_DATA en lugar de IN_ROW_DATA

– No se pueden incluir columnas que produzcan este desbordamiento en índices clustered

Page 20: Curso sql server_administracion

Ejercicios

Creación de una base de datos

Creación de tablas de ejemplo

Creación de Restricciones (PK, not null, …)

Creación del diagrama de base de datos

Implementación de lntegridad Referencial Declarativa

Generar secuencia de comandos SQL

Page 21: Curso sql server_administracion

Administración

Instalación

Bases de datos del sistema

Herramientas

Bases de datos

Gestión de la seguridad

Estrategias de copias de seguridad

SSIS y Programación de Tareas

Mantenimiento y control

Page 22: Curso sql server_administracion

Arquitectura de seguridad

Page 23: Curso sql server_administracion

Conceptos básicos

Inicios de sesión (Logins) – Acceso al servidor

Usuarios (Users) – Acceso a la base de datos

Autenticación – Windows (por defecto)

– Mixta (SQL y Windows)

El „SA‟

Page 24: Curso sql server_administracion

Autenticación Windows vs. SQL

Ventajas Windows

– Mayor seguridad

– Atributos password windows (longitud)

– Auditoría (desde el s.o.)

– Bloqueo de cuentas por reintentos

– Kerberos

Page 25: Curso sql server_administracion

Autenticación Windows vs. SQL

Desventajas Windows

– De no haber un controlador de dominio disponible no se podrá conectar

– Sólo usuarios del dominio

– Los cambios en la seguridad tendrán efecto al iniciar una sesión

– El DBA necesita derechos en el servidor para hacer estos cambios

Page 26: Curso sql server_administracion

Stored Procedures - login

CREATE/ALTER/DROP LOGIN

– sp_addlogin / sp_grantlogin

– sp_revokelogin / sp_denylogin

– sp_droplogin

sp_depends

sp_changeobjectowner / sp_changedbowner

Page 27: Curso sql server_administracion

Conceptos básicos - roles

Roles fijos de servidor (Fixed Server Roles)

Roles fijos de base de datos (Fixed Database Roles)

Roles de base de datos definidos por el usuario (user-defined database roles)

Roles de aplicación (aplication roles)

Page 28: Curso sql server_administracion

Fixed Server Roles sp_addsrvrolemember / sp_dropsrvrolemember

Sysadmin Serveradmin

Setupadmin Securityadmin

Processadmin Dbcreator Diskadmin Bulkadmin

Puede hacer cualquier tarea Cambiar configuración del

servidor, y apagarlo Configurar servidores vinculados Administrar logins, CREATE

DATABASE, error log y passwords

Manejar procesos en ejecución Crear, modificar y eliminar BBDD Administrar discos (ubic. Ficheros Ejecutar tareas de Bulk Insert

Page 29: Curso sql server_administracion

Fixed Database Roles sp_addrolemember / sp_droprolemember

Public

Db_owner Db_accessadmin Db_securityadmin

db_ddladmin

Db_backupoperator Db_datareader Db_datawriter Db_denydatareader Db_denydatawriter

Se le pueden dar/quitar privilegios Lo utilizan todos los usuarios

Realizar cualquier tarea Dar y quitar permisos de acceso Administrar permisos, propietarios

de objetos, y roles Todas las instrucciones DDL, menos

GRANT, REVOKE y DENY (DCL) BACKUP, DBCC y CHECKPOINT Leer cualquier tabla Escribir en cualquier tabla No puede leer ninguna tabla No puede escribir en ninguna tabla

Page 30: Curso sql server_administracion

User-defined database roles

Es a nivel de base de datos

Es el único tipo de roles que pueden ser creados por el usuario

Sirven para agrupar usuarios y darles una serie de privilegios

CREATE/ALTER/DROP ROLE – Sp_addrole

– Sp_droprole

Page 31: Curso sql server_administracion

Application Roles

Sirven para asignar privilegios a una aplicación

No se puede desactivar, hay que cerrar la aplicación

No se pueden asignar a un usuario

Sp_setapprole sirve para activarlos

Ejemplo en www.algoritmodigital.com

Page 32: Curso sql server_administracion

Permisos sobre objetos

Se otorgan a un usuario sobre

– Tablas

– Vistas

– Procedimientos almacenados

– Funciones

Tipos

– Select, Insert, Update, Delete

– References

– Execute

Page 33: Curso sql server_administracion

Permisos sobre objetos

Predefinidos

– Se adquieren por pertenecer a un role de servidor o de base de datos

Implícitos

– Se adquieren por ser propietario del objeto, permiten control total sobre él

Page 34: Curso sql server_administracion

Permisos sobre objetos

Tipos de permisos

– GRANT

– DENY

– REVOKE

Page 35: Curso sql server_administracion

Permisos sobre objetos

Para ver los permisos

– sp_helprotect

Permisos sobre un objeto

– sp_helprotect „NbObjeto‟

Permisos de un usuario

– sp_helprotect NULL, „NbUsuario‟

Page 36: Curso sql server_administracion

dbo

Los objetos pertenecen al dbo si los crean: – Miembros de Sysadmin – El „SA‟ – El propietario de la BBDD – Si se indica explícitamente „dbo.NbObjeto‟

Dbo debería ser propietario de todos los

objetos (sólo para 2000 y anteriores) – Evita problemas de ruptura de la cadena de

propiedad – Evita problemas en implantaciones en otros

servidores

Page 37: Curso sql server_administracion

Guest (invitado)

Este usuario es utilizado por todos los accesos que no tengan usuario en dicha BBDD

Se recomienda deshabilitarlo en las BBDD de usuario y en Model

Page 38: Curso sql server_administracion

Otras medidas de seguridad

Restringir el acceso a las tablas

Conceder acceso a:

– Vistas

– Procedimientos almacenados

– Funciones definidas por el usuario

Evitar la inserción de código SQL “SQL Injection”

Page 39: Curso sql server_administracion

SQL Injection (artículos)

http://www.programacion.com/asp/articulo/sqlinjection/

http://dotnetjunkies.com/WebLog/vbpuntonet/archive/2004/12/07/35437.aspx

http://www.securiteam.com/securityreviews/5DP0N1P76E.html

http://www.nextgenss.com/papers/advanced_sql_injection.pdf

http://www.windowsitpro.com/SQLServer/ (y buscar “sql injection”)

Cadena = “SELECT * FROM AUTHORS WHERE Id = „” + MiVar

+ “‟”

– Si Mivar = “Pepe‟ OR 1=1 --” ???

– Si MiVar = “Pepe‟ OR 1=1; DROP Table... --“ ???

Page 40: Curso sql server_administracion

Administración

Instalación

Bases de datos del sistema

Herramientas

Bases de datos

Gestión de la seguridad

Estrategias de copias de seguridad

SSIS y Programación de Tareas

Mantenimiento y control

Page 41: Curso sql server_administracion

Copias de seguridad

Nuestra información ha de estar a salvo

Debemos plantear una estrategia de copia y recuperación

– Frecuencia

– Tipos de copias

– Quién las hace

– Qué bases de datos se copian

Y PROBARLA !!!

Page 42: Curso sql server_administracion

Tipos de copias

Completa

Diferencial

Log de transacciones

Archivo o grupo de archivos

Alta disponibilidad

– Mirroring (2005)

– Replicación

– Log Shipping (trasvase de registros)

Page 43: Curso sql server_administracion

Copias con T-SQL

BACKUP DATABASE NombreBBDD TO Dispositivo [WITH DIFFERENTIAL]

sp_adddumpdevice

BACKUP LOG NombreBBDD TO Dispositivo

RESTORE DATABASE NombreBBDD FROM Dispositivo

RESTORE LOG NombreBBDD FROM Dispositivo

Page 44: Curso sql server_administracion

Proceso de restauración

En función de la estrategia de copia

No se debe dejar la base de datos disponible para los usuarios hasta el final del proceso de restauración.

Page 45: Curso sql server_administracion

Administración

Herramientas

Bases de datos

Gestión de la seguridad

Estrategias de copias de seguridad

SSIS y Programación de Tareas

Mantenimiento y control

Page 46: Curso sql server_administracion

SSIS y programación de tareas, mto. y control

Demo

– Veamoslo desde el SQL Server Management Studio Asistente para importación/exportación

Programación

Asistente para planes de mantenimiento

Page 47: Curso sql server_administracion

URLs

www.microsoft.com/spanish/msdn/cursos/sqlserver2000.asp

www.helpdna.net www.sqlserverymicrosoft.net www.portalsql.com www.solidqualitylearning.com www.siquelnet.com www.callsql.com www.sqlmax.com www.sqlserverbyexample.com

www.microsoft.com/spain/servidores www.microsoft.com/spain/technet www.microsoft.com/latam/technet www.microsoft.com/technet www.microsoft.com/spanish/msdn www.microsoft.com/msdn