Вы находитесь на странице: 1из 70

®

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 Los miembros del rol fijo de base de
dmin 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 Los miembros del rol fijo de base de
perator 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 Los miembros del rol fijo de base de datos db_ddladmin pueden
n 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 Los miembros del rol fijo de base de
er 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
Base de Datos Modo Emergencia

 Lo primero a verificar es la razón por la


cual esta base de datos quedaron como
sospechosas.
Cual es le mensaje en error log de SQL y
cual es el error en el visor de eventos.
Base de Datos Modo Emergencia

 En algunas ocasiones las base de datos


se dañan con fallas de hardware,
apagones inesperados del servidor y
transacciones interrumpidas
incorrectamente. SQL Server provee de
sentencias que permiten verificar y reparar
una base de datos con inconsistencias o
dañada.
Base de Datos Modo Emergencia

 Antes de realizar el siguiente


procedimiento deberia realizar un respaldo
de la base de datos dañada si lo permite
SQL Server o hacer una copia física de
los archivos.
Base de Datos Modo Emergencia

 Paso 1: se coloca la base de datos en


modo emergencia y usuario único
Alter Database mibd SET SINGLE_USER
Alter Database mibd SET EMERGENCY
Base de Datos Modo Emergencia

 Paso 2: Reparar la base datos


DBCC CHECKDB('mibd',
REPAIR_ALLOW_DATA_LOSS)

. Repita este paso hasta que el mensaje sea '0 errores


encontrados' para la base de datos
. La sentecia CHECKDB con la opcion
REPAIR_ALLOW_DATA_LOSS elimina datos de ser
necesario para realizar la reparación o corregir la
consistencia de los datos, para una reparación más
rápida y sin pérdida de datos pruebe la opcion
REPAIR_REBUILD, aunque en ocasiones con esta
opción no se repara completamente la base de datos.
Base de Datos Modo Emergencia

 Paso 3: Regresar a multiusuario y


colocar en linea la base de datos
Alter Database mibd SET ONLINE
Alter Database mibd SET MULTI_USER
Base de Datos Modo Emergencia

 Aunque esto permite recuperar la base de


datos en la mayoría de los casos, es
altamente recomendable tener una
estrategia correcta de respaldo o
recuperación de la base de datos tales
como espejos de discos, servidor
reflejado, recuperación completa, etc.
Conectividad Remota LAN para
servidores SQL Server
Por defecto SQL Server 2012 se instala con las
conexiones remotas deshabilitadas, por lo que si
necesitamos que nuestras aplicaciones se conecten
desde distintos equipos a nuestro servidor de base de
datos, será necesario realizar algunos ajustes para
habilitar las conexiones remotas.
1. Abrir SQL Server Management Studio, situarse encima de la
instancia del Servidor y
pulsar botón derecho, Propiedades, seleccionar Conexiones
2. Ir al Menú de Inicio > Programas > Microsoft SQL Server 2008 >
Herramientas de Configuración > Administrador de Configuración de
SQL Server.

Seleccionar la Configuración de red de SQL Server y luego Protocolos de


MSSQLSERVER.
Se deben habilitar los protocolos: “Canalizaciones con nombre” y “TCP/IP”. Clic
derecho del ratón encima de los mismos y clic en Habilitar. En ambas ocasiones
se muestra un mensaje informando que para que la nueva configuración surta
efecto hay que reiniciar el Servicio de SQL Server.
3. Ir al Menú de Inicio > Ejecutar y escribir services.msc y clic en Aceptar.
Se abre la Consola de Administración de Servicios. Desplazarse hasta el
Servicio con nombre “SQL Server (MSSQLSERVER)”, situarse encima y
pulsar el botón derecho del ratón, seleccionando; reiniciar. Esto es para
que se apliquen los cambios efectuados en el paso anterior.
4. SI se utiliza SQL Server con nombre de instancia y sin emplear un
número concreto de puerto TCP/IP, se debe habilitar el servicio SQL
Server Browser, que se encuentra en la misma ventana de Servicios con
el nombre de “SQL Server Browser”. Situarse encima y con el botón
derecho del ratón clic en Propiedades o doble clic

En el Tipo de Inicio,
seleccionar Automático.
Clic en Iniciar para que
el Servicio arranque.
Aceptar para cerrar la
pantalla.
Este Servicio comporta ciertos riesgos de seguridad que deben ser
considerados, pues existen otras alternativas a utilizar como configurar el
Cliente de SQL Servidor con el Alias del Servidor, o utilizar la conexión
incorporando el puerto de TCP/IP a usar, por defecto en SQL Server es el 1433.

5. Por último, en caso de tener habilitado el Firewall de Windows, se debe


configurar
para que los Servicios de SQL Server y SQL Browser puedan comunicarse con
el exterior.
Clic en Agregar programa se
muestra la ventana:
Clic en Examinar e
introducir la carpeta donde
se encuentra el Servicio de
SQL Server:
Normalmente “C:\Program
Files\Microsoft SQL
Server\MSSQL10.MSSQLS
ERVER\MSSQL\Binn” en la
misma seleccionar el
programa:
“sqlservr.exe” y clic en
Aceptar.
Repetir la operación para
añadir el SQL Server
Browser que normalmente
se encuentra en la carpeta:
“C:\Program Files\Microsoft
SQL Server\90\Shared”.
Seleccionar el programa:
“sqlbrowser.exe” y clic en
Aceptar.

Вам также может понравиться