Fijaciones de balcones prefabricados de hormigón - RECENSE
Taller de Base de Datos - Unidad 4 seguridad
1. 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
2. Competencia: Definir e implementar esquemas de seguridad a través del
SGBD.
TALLER DE BASE DE DATOS
3. 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
4. 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
5. • 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
6. 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
7. 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
8. • 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
9. • En Estado marcamos la casilla Habilitado para habilitar el usuario.
TALLER DE BASE DE DATOS
10. • 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
11. 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’.
12. • 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
13. • 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
14. 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
15. • 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
16. • En Funciones del servidor
marcamos la casilla con la
opción sysadmin.
TALLER DE BASE DE DATOS
17. • Luego en Estado marcamos la
casilla con la opción Habilitada.
TALLER DE BASE DE DATOS
18. • 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
19. 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
20. 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
21. • 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
22. • En el cuadro Esquema predeterminado,
especificar el esquema al que pertenecerán
los objetos creados por este usuario.
TALLER DE BASE DE DATOS
23. • 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
24. 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
25. Tipos de Roles
TALLER DE BASE DE DATOS
Nombre 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_securityadmin
Los 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.
26. Roles de la BD msdb
TALLER DE BASE DE DATOS
Nombre de rol de msdb Descripción
db_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_ssisoperator
db_ssisltduser
dc_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_operator
dc_proxy
PolicyAdministratorRole
Los 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.
ServerGroupAdministrat
orRole
Los miembros de estos roles de base de datos pueden administrar y utilizar grupos de servidores
registrados.
ServerGroupReaderRole
dbm_monitor
Se 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.
27. CREATE ROLE (Transact-SQL)
• Crea un rol de base de datos nuevo en la base de datos actual.
Sintaxis
CREATE 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
28. Ejemplos:
A. Crear un rol de base de datos propiedad de un usuario de la base de datos
En 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
29. 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
30. 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
31. 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
32. • 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
33. 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
34. 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
35. 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
36. Modificación de una Vista
Si 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
37. Eliminación de una Vista
Por ú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
38. 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
39. 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