Usuarios, Roles, Encriptación y Back Up de la base de datos.

®
Microsoft
SQL Server 2008
Usuarios, Roles, Encriptación y Back Up de la base
de datos.
Creación de un nuevo Usuario


1. Dar clic en Seguridad.
2. Dar clic derecho en Logins.
Creación de un nuevo Usuario

Clic en New Login…
Creación de un nuevo Usuario

Se muestra el siguiente cuadro de diálogo
Creación de un nuevo Usuario
Creación de un nuevo Usuario
Creación de un nuevo Usuario
Creación de un nuevo Usuario


Finalmente se muestra el Usuario creado.
Sin embargo, este aún no funciona, para ello se
deben de hacer unos cambios.
Creación de un nuevo Usuario
Creación de un nuevo Usuario
Creación de un nuevo Usuario
Creación de un nuevo Usuario
Creación de un nuevo Usuario
Creación de un nuevo Usuario
Creación de un nuevo Usuario





Como crear un Usuario con código.
1)Se crea el inicio de sesión.
CREATE LOGIN Prueba WITH
PASSWORD = 'Passwd‘
Crea un usuario de base de datos para el
inicio de sesión creado anteriormente.
CREATE USER Prueba FOR LOGIN
Prueba;
Roles SQL Server












Cada rol agrupa un conjunto de permisos
Facilitan la admón. de seguridad
Se definen a nivel de servidor. Independiente, por tanto, de
las bases de datos
Un inicio de sesión puede pertenecer a cero o más roles de
servidor
Un inicio de sesión que pertenezca a un rol de servidor
adquiere los permisos de ese rol
Son fijos:
No se pueden modificar sus permisos
 No pueden eliminarse
 No pueden añadirse nuevos roles de servidor
Roles a nivel de servidor
Rol
Descripción
sysadmin
Los miembros del rol fijo de servidor sysadmin pueden realizar
cualquier actividad en el servidor.
serveradmin
Los miembros del rol fijo de servidor serveradmin pueden cambiar
las opciones de configuración del servidor y apagarlo.
securityadmin Los miembros del rol fijo de servidor securityadmin administran
los inicios de sesión y sus propiedades. Administran los permisos
de servidor GRANT, DENY y REVOKE. También pueden
administrar los permisos de nivel de base de datos GRANT,
DENY y REVOKE si tienen acceso a una base de datos.
Asimismo, pueden restablecer las contraseñas para los inicios de
sesión de SQL Server.
processadmin Los miembros del rol fijo de servidor processadmin pueden
finalizar los procesos que se ejecuten en una instancia de SQL
Server.
setupadmin
Los miembros del rol fijo de servidor setupadmin pueden agregar
y quitar servidores vinculados.
bulkadmin
Los miembros del rol fijo de servidor bulkadmin pueden ejecutar
la instrucción BULK INSERT.
Roles a nivel de servidor
Rol
Descripción
diskadmin
El rol fijo de servidor diskadmin se usa para administrar archivos
de disco.
dbcreator
Los miembros del rol fijo de servidor dbcreator pueden crear,
modificar, quitar y restaurar cualquier base de datos.
public
Cada inicio de sesión de SQL Server pertenece al rol de servidor
public. Cuando a una entidad de seguridad de servidor no se le
han concedido ni denegado permisos específicos para un objeto
protegible, el usuario hereda los permisos concedidos al rol
public para ese objeto. Solo asigne permisos públicos en
cualquier objeto cuando desee que el objeto esté disponible para
todos los usuarios. No puede cambiar la pertenencia en public.
Roles a nivel de Base de Datos
Rol
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 quitar la base de datos.
db_securitya Los miembros del rol fijo de base de
dmin
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_accessa
dmin
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_backupo
perator
Los miembros del rol fijo de base de
datos db_backupoperator pueden crear copias de seguridad de
la base de datos.
Roles a nivel de Base de Datos
Rol
Descripción
db_ddladmi
n
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_datawrite Los miembros del rol fijo de base de
r
datos db_datawriter pueden agregar, eliminar o cambiar datos
en todas las tablas de usuario.
db_dataread
er
Los miembros del rol fijo de base de
datos db_datareader pueden leer todos los datos de todas las
tablas de usuario.
db_denydata Los miembros del rol fijo de base de
writer
datos db_denydatawriter no pueden agregar, modificar ni
eliminar datos de tablas de usuario de una base de datos.
db_denydata Los miembros del rol fijo de base de
reader
datos db_denydatareader no pueden leer datos de las tablas de
usuario dentro de una base de datos.
Roles definidos por el usuario










Agrupan un conjunto de permisos
No tienen permisos predefinidos
Los permisos se establecen por:
Pertenencia a otros roles
 Permisos de sentencias
 Permisos específicos de objetos
Pueden ser:
 Rol estándar
 Rol de aplicación: establecer permisos a una
aplicación sobre la BD
Los pueden gestionar: sysadmin, propietario de BD,
db_owner, db_securityadmin
Crear un Rol con Código

CREATE ROLE compradores AUTHORIZATION
Prueba;

Asignar un Rol a un Usuario.

sp_addrolemember compradores,Prueba
Crear un Rol
Crear un Rol
Crear un Rol
Restricción de Usuario
(Permisos)
Restricción de Usuario
(Permisos)
Restricción de Usuario
(Permisos)
Restricción de Usuario
(Permisos)
Restricción de Usuario
(Permisos) con código




Permitir a un usuario crear una base de
datos y tablas.
GRANT CREATE DATABASE, CREATE
TABLE TO Prueba
Permitir a un usuario Insertar, modificar y
eliminar registros de una tabla.
GRANT INSERT, UPDATE, DELETE ON
dbo.authors TO Prueba
Restricción de Usuario
(Permisos) con código




Permitir a un usuario actualizar un único
campo de una tabla.
GRANT UPDATE( phone ) ON
dbo.authors TO Prueba
Permitir a un usuario Insertar, modificar y
eliminar registros de una tabla.
GRANT INSERT, UPDATE, DELETE ON
dbo.authors TO Prueba
Restricción de Usuario (Revocar
Permisos) con código






Impedir que el usuario pueda crear vistas
de una tabla.
REVOKE CREATE VIEW
TO Prueba
Impedir que un usuario pueda eliminar.
REVOKE DELETE
TO Prueba
Restricción de Usuario (Denegar
Permisos) con código






Denegar a un usuario el permiso de
seleccionar.
DENY SELECT
TO Prueba
Denegar a un usuario el permiso de crear
tablas.
DENY CREATE TABLE
TO Prueba
Encriptación de datos










¿para qué?
Evitar acceso a datos sensibles
Evitar robo de copias de seguridad con datos
sensibles
¿qué técnicas?
Encriptación a nivel de columna
Encriptación transparente (TDE) (afecta a toda la
BD)
¿coste?
Mayor sobrecarga y puede afectar al rendimiento
Requiere una estrategia para la definición y
mantenimiento de claves, passwords y certificados
Por ello no debe considerarse para todos los datos
y conexiones
Encriptación de datos






Encriptación a nivel de columna
Mediante certificados, keys o frases
Requiere el uso de funciones específicas
Symmetric Key
 Certificate
 EncrypyPassphrase
Encriptación de datos






Encriptación a nivel de columna
Encriptación transparente (TDE), afecta a toda
la BD
No protege las comunicaciones entre aplicación
cliente y servidor
No encripta FILESTREAM.
No impide al DBA ver los datos.
Puede caer el rendimiento si conviven BD TDE
y sin encriptar.
Encriptación de datos. Ejemplo

Encriptar un registro de una tabla.

SELECT
EncryptByPassPhrase(address,'PassWord') AS
encrypted FROM dbo.authors
Encriptación de datos. Ejemplo

Insertar un registro encriptado.

1) Crear la Tabla

create table login_details
(
uid integer,
username varchar(10),
password varbinary(100)
)





Encriptación de datos. Ejemplo

Insertar un registro encriptado.

2)Insertar los registros

insert into login_details(uid,username,password)
values(1,'smith',EncryptByPassPhrase('12','XXX'))
insert into login_details(uid,username,password)
values(2,'kennal',EncryptByPassPhrase('12','YYY'))
insert into login_details(uid,username,password)
values(3,'staurt',EncryptByPassPhrase('12','ZZZ'))


Encriptación de datos. Ejemplo

Insertar un registro encriptado.

3) Verificar Encriptación.

select * from login_details
Encriptación de datos. Ejemplo

Desencriptar los registros.

select uid,username,convert(varchar(10),
DECRYPTBYPASSPHRASE ('12',password))
from login_details
Back Up de la Base de Datos
Back Up de la Base de Datos
Back Up de la Base de Datos
Back Up de la Base de Datos
Back Up de la Base de Datos
Back Up de la Base de Datos
Restaurar la Base de Datos
Restaurar la Base de Datos
Restaurar la Base de Datos
Restaurar la Base de Datos
Restaurar la Base de Datos
Restaurar la Base de Datos
Restaurar la Base de Datos
Restaurar la Base de Datos