Está en la página 1de 39

TALLER DE BASE DE DATOS

Ingeniería en Sistemas Computacionales


Taller de Base de Datos
Unidad III: Seguridad
TALLER DE BASE DE DATOS

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


del SGBD.
TALLER DE BASE DE DATOS
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.

LeBlanc, 2013
TALLER DE BASE DE DATOS
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

LeBlanc, 2013
TALLER DE BASE DE DATOS
• 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

LeBlanc, 2013
TALLER DE BASE DE DATOS
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
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
• 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
• En Estado marcamos la casilla Habilitado para habilitar el usuario.
TALLER DE BASE DE DATOS

• 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

Dentro de las propiedades


nos vamos a ‘Security’ y
marcamos la casilla con la
opción ‘SQL Server and
Windows Authentication
mode’.
TALLER DE BASE DE DATOS

• 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
• 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
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
• 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

• En Funciones del servidor


marcamos la casilla con la
opción sysadmin.
TALLER DE BASE DE DATOS
• Luego en Estado marcamos la
casilla con la opción Habilitada.
TALLER DE BASE DE DATOS
• 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
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
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
• 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

• En el cuadro Esquema predeterminado,


especificar el esquema al que pertenecerán
los objetos creados por este usuario.
TALLER DE BASE DE DATOS
• 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
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
Tipos de Roles
Nombre de rol de nivel
Descripción
de base de datos
Los miembros del rol fijo de base de datos db_owner pueden realizar todas las actividades de configuración y
db_owner mantenimiento en la base de datos y también pueden eliminar la base de datos.
Los miembros del rol fijo de base de datos db_securityadmin pueden modificar la pertenencia a roles y
db_securityadmin administrar permisos. Si se agregan entidades de seguridad a este rol, podría habilitarse un aumento de
privilegios no deseado.
Los miembros del rol fijo de base de datos db_accessadmin pueden agregar o quitar el acceso a la base de
db_accessadmin datos para inicios de sesión de Windows, grupos de Windows e inicios de sesión de SQL Server.
Los miembros del rol fijo de base de datos db_backupoperator pueden crear copias de seguridad de la base de
db_backupoperator datos.
Los miembros del rol fijo de base de datos db_ddladmin pueden ejecutar cualquier comando del lenguaje de
db_ddladmin 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.
Los miembros del rol fijo de base de datos db_denydatareader no pueden leer datos de las tablas de usuario
db_denydatareader dentro de una base de datos.
TALLER DE BASE DE DATOS
Roles de la BD msdb
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
db_ssisoperator rol cuya denominación se realizaba utilizando Servicios de transformación de datos (DTS) en lugar de
db_ssisltduser SSIS. Para obtener más información, vea Roles de Integration Services (servicio SSIS).
dc_admin
Los miembros de estos roles de base de datos pueden administrar y utilizar el recopilador de datos.
dc_operator
Para obtener más información, vea Recopilación de datos.
dc_proxy
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
PolicyAdministratorRole
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
Se crea en la base de datos msdb cuando se registra la primera base de datos en el Monitor de
dbm_monitor 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.
TALLER DE BASE DE DATOS
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
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
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
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
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
• 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
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
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
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
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
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
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
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

También podría gustarte