Taller de Base de Datos - Unidad 4 seguridad

39
Ingeniería en Sistemas Computacionales Taller de Base de Datos Unidad IV: Seguridad Este material está desarrollado para la asignatura Taller de Base de Datos, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224 TALLER DE BASE DE DATOS

Transcript of Taller de Base de Datos - Unidad 4 seguridad

Page 1: Taller de Base de Datos - Unidad 4 seguridad

Ingeniería en Sistemas Computacionales

Taller de Base de DatosUnidad IV: Seguridad

Este material está desarrollado para la asignatura Taller de Base de Datos, de la carrera de Ingeniería en Sistemas Computacionales, plan de estudios ISIC-2010-224

TALLER DE BASE DE DATOS

Page 2: Taller de Base de Datos - Unidad 4 seguridad

Competencia: Definir e implementar esquemas de seguridad a través del SGBD.

TALLER DE BASE DE DATOS

Page 3: Taller de Base de Datos - Unidad 4 seguridad

SQL Server Security

Sin importar cual sea el objetivo de nuestra base de datos ya sea educativo, ventas, finanzas, o gobierno, la seguridad de la DB debe ser siempre prioritaria.

Quienes pueden acceder a la DB, que información pueden visualizar, y como acceden a la información son solo algunos de los puntos que un DBA debe tener en cuenta al momento de asignar la seguridad de las bases de datos a su cargo.

TALLER DE BASE DE DATOS

LeBlanc, 2013

Page 4: Taller de Base de Datos - Unidad 4 seguridad

Existen tres tipos de usuarios en un DBMS, los cuales se distinguen por el modo como interactúan con el sistema:

• PROGRAMADORES DE APLICACIONES: Son profesionales en computación que interactúan con el sistema mediante instrucciones en DML, las cuales son traducidas en un programa escrito en un lenguaje huésped. Estos programas se denominan Programas de aplicaciones.

• USUARIOS CASUALES: Usuarios que interactúan con el sistema sin escribir programas, pero haciendo consultas en un lenguaje de consulta de datos

TALLER DE BASE DE DATOS

LeBlanc, 2013

Page 5: Taller de Base de Datos - Unidad 4 seguridad

• USUARIOS INGENUOS: Usuarios que interactúan con el sistema poco complejos que interactúan con el sistema llamando algunos de los programas de aplicación permanentes escritos previamente.

• El administrador de base de datos (DBA)

Protección dirigida a dos tipos de usuarios.• Los que no tienen derechos de acceso• Los que tienen derechos limitados a ciertas acciones

TALLER DE BASE DE DATOS

LeBlanc, 2013

Page 6: Taller de Base de Datos - Unidad 4 seguridad

Habilitar la Autenticación de SQL• Primero debemos abrir SQL Server Management Studio.• Luego debemos conectarnos por Autenticación de Windows.

TALLER DE BASE DE DATOS

Page 7: Taller de Base de Datos - Unidad 4 seguridad

Nota: Existe un usuario creado por defecto en la instalación con nombre de usuario: “sa”.

• El usuario “sa” se encuentra en el campo Seguridad/ Inicios de sesión.• Hacer clic derecho sobre “sa” y seleccionar

Propiedades.

TALLER DE BASE DE DATOS

Page 8: Taller de Base de Datos - Unidad 4 seguridad

• Luego se abrirá una ventana de propiedades y cambiamos la contraseña a la vez que desmarcamos la casilla ‘Enforce Password Policy’.

TALLER DE BASE DE DATOS

Page 9: Taller de Base de Datos - Unidad 4 seguridad

• En Estado marcamos la casilla Habilitado para habilitar el usuario.

TALLER DE BASE DE DATOS

Page 10: Taller de Base de Datos - Unidad 4 seguridad

• Para poder conectarnos por medio de la Autenticación de SQL Server debemos dar clic derecho en el nombre del servidor de Windows y seleccionar Propiedades.

TALLER DE BASE DE DATOS

Page 11: Taller de Base de Datos - Unidad 4 seguridad

TALLER DE BASE DE DATOS

Dentro de las propiedades nos vamos a ‘Security’ y

marcamos la casilla con la opción ‘SQL Server and

Windows Authentication mode’.

Page 12: Taller de Base de Datos - Unidad 4 seguridad

• Una vez hecho esto hacemos clic derecho en el nombre del servidor de Windows y seleccionamos la opción Reiniciar; nos aparecerá un cuadro preguntando si deseamos reiniciar, le damos en Sí.

TALLER DE BASE DE DATOS

Page 13: Taller de Base de Datos - Unidad 4 seguridad

• Después de haber realizado lo anterior ya es posible acceder con el usuario “sa” por medio de la Autenticación de SQL Server.

TALLER DE BASE DE DATOS

Page 14: Taller de Base de Datos - Unidad 4 seguridad

Crear un nuevo usuario de SQL• Nos conectamos y nos vamos a Seguridad, luego hacemos clic derecho en

Inicios de sesión y seleccionamos la opción Nuevo inicio de sesión.

TALLER DE BASE DE DATOS

Page 15: Taller de Base de Datos - Unidad 4 seguridad

• En la ventana que se abre, colocar el nombre de inicio de sesión que se desea y marcar la casilla con la opción Autenticación de SQL Server.

• En cuanto se activa la casilla de Autenticación de SQL Server se habilitan mas opciones, en esas opciones colocamos la contraseña que se desea y desmarcamos la casilla Exigir directivas de contraseña.

TALLER DE BASE DE DATOS

Page 16: Taller de Base de Datos - Unidad 4 seguridad

• En Funciones del servidor marcamos la casilla con la opción sysadmin.

TALLER DE BASE DE DATOS

Page 17: Taller de Base de Datos - Unidad 4 seguridad

• Luego en Estado marcamos la casilla con la opción Habilitada.

TALLER DE BASE DE DATOS

Page 18: Taller de Base de Datos - Unidad 4 seguridad

• Aceptamos todos los cambios y nos desconectamos.• Ya es posible ingresar con el nuevo usuario creado por medio de la

Autenticación de SQL Server.

TALLER DE BASE DE DATOS

Page 19: Taller de Base de Datos - Unidad 4 seguridad

Creación de Usuarios de la Base de Datos• Un usuario es una entidad de seguridad de la base de datos. Los inicios de

sesión deben estar asignados a un usuario de base de datos para poder conectarse a una base de datos. • Un inicio de sesión se puede asignar a bases de datos diferentes como

usuarios diferentes pero solo se puede asignar como un usuario en cada base de datos. • En una base de datos parcialmente independiente, puede crearse un usuario

que no tenga un inicio de sesión. Para obtener más información acerca de los usuarios de bases de datos independientes.• Si el usuario invitado de una base de datos está habilitado, un inicio de sesión

que no esté asignado a un usuario de la base de datos puede entrar en la base de datos como el usuario invitado.

TALLER DE BASE DE DATOS

Page 20: Taller de Base de Datos - Unidad 4 seguridad

Para crear un usuario de base de datos

• En el Explorador de objetos, expanda la carpeta Bases de datos.• Expanda la base de datos en la que se va a crear el

usuario de la misma.• Haga clic con el botón secundario en la

carpeta Seguridad, seleccione Nuevo y seleccione Usuario.

TALLER DE BASE DE DATOS

Page 21: Taller de Base de Datos - Unidad 4 seguridad

• En el cuadro de diálogo Usuario de la base de datos - Nuevo, en la pestaña General, seleccionar uno de los tipos de usuario de la lista correspondiente.• Escribir un nombre para el nuevo usuario. • Si elegió Usuario de Windows en la lista Tipo de usuario, también hacer

clic en los puntos suspensivos (…) para abrir el cuadro de diálogo Seleccionar usuarios o grupos.• Escribir el inicio de sesión para el usuario.

TALLER DE BASE DE DATOS

Page 22: Taller de Base de Datos - Unidad 4 seguridad

• En el cuadro Esquema predeterminado, especificar el esquema al que pertenecerán los objetos creados por este usuario.

TALLER DE BASE DE DATOS

Page 23: Taller de Base de Datos - Unidad 4 seguridad

• En el cuadro de Select Login, escribir Nombre del login que usaremos, o bien buscarlo por medio del boton ‘Browse’.• Aceptar.

TALLER DE BASE DE DATOS

Page 24: Taller de Base de Datos - Unidad 4 seguridad

ROLES• Un rol es una colección de privilegios del sistema y de objetos que se

otorgan a usuarios y a otras tareas.

• Para administrar con facilidad los permisos en las bases de datos, SQL Server proporciona varios roles, que son las entidades de seguridad que agrupan a otras entidades de seguridad. Son como los grupos del sistema operativo Microsoft Windows. Los roles de nivel de base de datos se aplican a toda la base de datos en lo que respecta a su ámbito de permisos.

• Existen dos tipos de roles de nivel de base de datos en SQL Server: los roles fijos de base de datos, que están predefinidos en la base de datos, y los roles flexibles de base de datos, que pueden crearse.

TALLER DE BASE DE DATOS

Page 25: Taller de Base de Datos - Unidad 4 seguridad

Tipos de Roles

TALLER DE BASE DE DATOSNombre de rol de nivel

de base de datos Descripción

db_owner Los miembros del rol fijo de base de datos db_owner pueden realizar todas las actividades de configuración y mantenimiento en la base de datos y también pueden eliminar la base de datos.

db_securityadminLos miembros del rol fijo de base de datos db_securityadmin pueden modificar la pertenencia a roles y administrar permisos. Si se agregan entidades de seguridad a este rol, podría habilitarse un aumento de privilegios no deseado.

db_accessadmin Los miembros del rol fijo de base de datos db_accessadmin pueden agregar o quitar el acceso a la base de datos para inicios de sesión de Windows, grupos de Windows e inicios de sesión de SQL Server.

db_backupoperator Los miembros del rol fijo de base de datos db_backupoperator pueden crear copias de seguridad de la base de datos.

db_ddladmin Los miembros del rol fijo de base de datos db_ddladmin pueden ejecutar cualquier comando del lenguaje de definición de datos (DDL) en una base de datos.

db_datawriter Los miembros del rol fijo de base de datos db_datawriter pueden agregar, eliminar o cambiar datos en todas las tablas de usuario.

db_datareader Los miembros del rol fijo de base de datos db_datareader pueden leer todos los datos de todas las tablas de usuario.

db_denydatawriter Los miembros del rol fijo de base de datos db_denydatawriter no pueden agregar, modificar ni eliminar datos de tablas de usuario de una base de datos.

db_denydatareader Los miembros del rol fijo de base de datos db_denydatareader no pueden leer datos de las tablas de usuario dentro de una base de datos.

Page 26: Taller de Base de Datos - Unidad 4 seguridad

Roles de la BD msdb

TALLER DE BASE DE DATOS

Nombre de rol de msdb Descripcióndb_ssisadmin Los miembros de estos roles de base de datos pueden administrar y utilizar SSIS. Las instancias de

SQL Server que se actualizan desde una versión anterior podrían contener una versión anterior del rol cuya denominación se realizaba utilizando Servicios de transformación de datos (DTS) en lugar de SSIS. Para obtener más información, vea Roles de Integration Services (servicio SSIS).

db_ssisoperatordb_ssisltduserdc_admin Los miembros de estos roles de base de datos pueden administrar y utilizar el recopilador de datos.

Para obtener más información, vea Recopilación de datos.dc_operatordc_proxy

PolicyAdministratorRoleLos miembros del rol de base de datos db_PolicyAdministratorRole pueden realizar todas las actividades de mantenimiento y configuración en las condiciones y directivas de Administración basada en directivas. Para obtener más información, vea Administrar servidores mediante administración basada en directivas.

ServerGroupAdministratorRole Los miembros de estos roles de base de datos pueden administrar y utilizar grupos de servidores

registrados.ServerGroupReaderRole

dbm_monitorSe crea en la base de datos msdb cuando se registra la primera base de datos en el Monitor de creación de reflejo de la base de datos. El rol dbm_monitorno tiene miembros hasta que un administrador del sistema asigna usuarios al rol.

Page 27: Taller de Base de Datos - Unidad 4 seguridad

CREATE ROLE (Transact-SQL)

• Crea un rol de base de datos nuevo en la base de datos actual.

SintaxisCREATE ROLE role_name [ AUTHORIZATION owner_name ]

Argumentos• role_nameEs el nombre del rol que se va a crear.• AUTHORIZATION owner_nameEs el usuario o el rol de base de datos que

será propietario del nuevo rol. Si no se especifica un usuario, el rol será propiedad del usuario que ejecute CREATE ROLE.

TALLER DE BASE DE DATOS

Page 28: Taller de Base de Datos - Unidad 4 seguridad

Ejemplos:

A. Crear un rol de base de datos propiedad de un usuario de la base de datosEn el siguiente ejemplo se crea el rol de base de datos buyers que es propiedad del usuario BenMiller.

USE AdventureWorks2012;CREATE ROLE buyers AUTHORIZATION BenMiller;GO

TALLER DE BASE DE DATOS

Page 29: Taller de Base de Datos - Unidad 4 seguridad

B. Crear un rol de base de datos que es propiedad de un rol fijo de base de datos

En el siguiente ejemplo se crea el rol de base de datos auditors que es propiedad del rol fijo de base de datos db_securityadmin.

USE AdventureWorks2012;CREATE ROLE auditors AUTHORIZATION db_securityadmin;GO

TALLER DE BASE DE DATOS

Page 30: Taller de Base de Datos - Unidad 4 seguridad

Vistas en SQL Server

• Una vista es una tabla virtual cuyo contenido está definido por una consulta.• Una vista es sencillamente un objeto de base de datos que presenta datos

de tablas. Se trata de una consulta SQL que está permanentemente almacenada en la Base de datos y a la que se le asigna un nombre, de modo que los resultados de la consulta almacenada son visibles a través de la vista, y SQL permite acceder a estos resultados como si fueran de hecho una tabla real en la base de datos.• Las tablas y las vistas comparten el mismo espacio de nombres en la base de

datos, por lo tanto, una base de datos no puede contener una tabla y una vista con el mismo nombre.

TALLER DE BASE DE DATOS

Page 31: Taller de Base de Datos - Unidad 4 seguridad

Usos de las Vistas

• Las vistas suelen utilizarse para centrar, simplificar y personalizar la percepción de la base de datos para cada usuario.

• Las vistas pueden emplearse como mecanismos de seguridad, que permiten a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden el permiso de obtener acceso directo a las tablas subyacentes de la vista.

• Las vistas se pueden utilizar para realizar particiones de datos y para mejorar el rendimiento cuando se copian, se importan y se exportan datos.

TALLER DE BASE DE DATOS

Page 32: Taller de Base de Datos - Unidad 4 seguridad

• Mediante vistas es posible presentar datos de distintos servidores. Por ejemplo, para combinar datos de distintos servidores remotos o en un servidor de múltiples procesadores, cada uno de los cuales almacenan datos para una región distinta de su organización, puede crear consultas distribuidas o paralelas aumentando la eficiencia de las consultas.

• Mediante diversas cláusulas es factible crear, modificar, eliminar y administrar vistas. La sintaxis básica para estas cláusulas es genérica entre diversos gestores de base de datos. Sin embargo en lo particular cada gestor implementa la administración de estas de forma diferente.

TALLER DE BASE DE DATOS

Page 33: Taller de Base de Datos - Unidad 4 seguridad

Las vistas son tablas virtuales en donde podemos visualizar los datos que consultemos. Si actualizamos los datos de una vista, actualizaremos la tabla, y si actualizamos la tabla estos cambios serán visibles desde la vista.

¿Por qué crear vistas? Seguridad: Visualizamos solo una parte de la información que

existe en nuestras tablas

Comodidad: El modelo relacional no es cómodo para visualizar, tener una vista nos simplifica esta tarea.

TALLER DE BASE DE DATOS

Page 34: Taller de Base de Datos - Unidad 4 seguridad

Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SELECT válida.

Sintaxis:

CREATE VIEW <nombre_vista> AS (<sentencia_select>)

TALLER DE BASE DE DATOS

Page 35: Taller de Base de Datos - Unidad 4 seguridad

Ejemplo:

USE AdventureWorks2012 ; GO

CREATE VIEW hiredate_view AS SELECT p.FirstName, p.LastName, e.BusinessEntityID, e.HireDate FROM HumanResources.Employee e JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID ; GO

TALLER DE BASE DE DATOS

Page 36: Taller de Base de Datos - Unidad 4 seguridad

Modificación de una VistaSi queremos, modificar la definición de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo hacíamos con las tablas. En este caso queremos colocar un alias a los campos de nuestra vista:

ALTER VIEW vista_prestamos AS ( SELECT nombre as Nombre, apellido1 as [Primer Apellido], importe as [Monto Prestado] FROM clientes, prestamos WHERE id=idCliente ) )

TALLER DE BASE DE DATOS

Page 37: Taller de Base de Datos - Unidad 4 seguridad

Eliminación de una VistaPor último, podemos eliminar la vista a través de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se utilizaría:

Sintaxis:DROP VIEW nombre_vista

Ejemplo 1:DROP VIEW vista_prestamos

TALLER DE BASE DE DATOS

Page 38: Taller de Base de Datos - Unidad 4 seguridad

Ejercicios; utilizando la BD AdventureWorks2012:• Genere una vista que muestre los 10 productos más vendidos en el

año 2007• Genere una vista que muestre

TALLER DE BASE DE DATOS

Page 39: Taller de Base de Datos - Unidad 4 seguridad

Bibliografía Consultada

Patrick LeBlanc, Microsoft SQL Server 2012 Step by Step. O’Reilly Media Inc. Sebastopol, CA, USA. 2013. (Traducción realizada por José A. Sandoval Acosta).

Pratt Philip J., Last Mary Z. SQL, 1ra. Edición. Anaya Multimedia. Madrid, España. 2009.

Adam Jorgersen, Microsoft SQL Server 2012 Bible. John Wiley & Sons, Inc. Indianapolis, Indiana. 2012.

https://msdn.microsoft.com. Página en español. Consultado en octubre de 2015.

TALLER DE BASE DE DATOS