Configuracion Cliente-Servidor SQL Server.pptx

26
Configuración Cliente- Servidor SQL Server Integrantes: José Cortijo Bellido Frank Arpita Salcedo Inka

Transcript of Configuracion Cliente-Servidor SQL Server.pptx

Configuración Cliente-Servidor SQL Server

Integrantes:• José Cortijo Bellido• Frank Arpita Salcedo• Inka

Configuración

Ingresamos al SQL Server Management Studio

Nos aparecerá esta pantalla de inicio en donde debemos ingresar el “nombre del Servidor”, generalmente esta en blanco por lo que debemos ingresarlo.

El Server Name es el nombre de nuestra PC en mayúsculas ejemplo XION-PC

El modo de autenticación lo dejamos por defecto “autenticación Windows” y clic “conectar”

Damos clic derecho sobre el nombre del servidor y elegimos propiedades

Nos dirigimos a la pestaña seguridad y cambias de modo autenticación de Windows a “Autenticación de SQL Server”

Ahora damos clic en aceptar y nos aparece una advertencia, “algunos cambios tendrán efectos cuando SQL Server sea reiniciado” y damos clic en “aceptar”

Creación de Inicio de Sesión

Para crear un inicio de sesión, en el menú lateral damos clic derecho sobre la pestaña “Seguridad” luego “nuevo” y a continuación “Usuario(Inicio de Sesión)”

Una vez que seleccionamos nuevo inicio de sesión, en la pestaña “General” escogemos “Autenticación de SQL Server”

Damos un “nombre de inicio de sesión”

ingresamos “la contraseña” adecuada como por ejemplo “*.#admin6789” de tipo alfanumérico

Finalmente marcamos solo el checkbox que dice “Exigir directiva de contraseña”

Nos dirigimos a la pestaña “Funciones del servidor” y seleccionamos “SYSADMIN” que otorga los privilegios de administrador al usuario que estamos creando, o seleccionamos tan solo las credenciales que necesitemos, y clic en “Aceptar”

Una vez terminado el proceso anterior cerramos el SQL Server Management Studio para configurar el motor de base de datos desde el Administrador de configuración de SQL Server

En la pantalla que se nos presenta, nos dirigimos al menú lateral seleccionamos “configuración de red de SQL Server”, doble clic en “Protocolos para MSSQLSERVER” y nos ubicamos sobre el ítem “Canalización por nombre” que se encuentra como deshabilitado

Procedemos a dar doble clic sobre “Canalización por nombre” y en la pantalla que se presenta seleccionamos “si” en la opción habilitar

Cuando damos clic en aceptar nos muestra un mensaje que nos dice “algunos cambios surtirán efecto una vez haya detenido y reiniciado el motor de base de datos”

Para detener el motor de base de datos nos vamos a la pestaña “Servicio de SQL Server” y seleccionamos SQL SERVER(MSSQLSERVER) ahora damos clic sobre el “botón detener” ubicado en el menú superior

Realizamos el mismo proceso anterior pero esta vez clic en el “botón iniciar” del menú superior para proceder a reiniciar nuestro SERVER, una vez completado cerramos el administrador

Para finalizar, abrimos el SQL Server 2008 y cambios la forma de autentificación elegimos “Autenticación de SQL Server y debajo las “credenciales del usuario” que creamos al inicio y entraremos normalmente en SQL Server 2008.

Habilitar Conexión Remota Para habilitar las conexiones remotas

tenemos que habilitar el TCP/IP, vamos a Inicio -> Todos los programas -> Microsoft SQL Server 2008 -> Herramientas de Configuración -> Administrador de configuración de SQL Server y por el árbol de la izquierda nos movemos hasta la rama Configuración de red de SQL Server -> Protocolos de SQLEPRESS y en la derecha vemos los protocolos, tenemos que habilitar el protocolo TCP/IP.

Después tenemos que mirar en Servicios que el servicio del Explorador de SQL (SQL Server Browser) este arrancado.

Y con estas modificaciones ya podríamos conectarnos al servidor.

Aplicación Cliente Crearemos nuestra aplicación

cliente que se conectara con la base de datos (que ya hemos creado) en el servidor remoto.

Los Datos son: Nombre del Servidor: XION-

PC\SQLEXPRESS Nombre de Usuario: xion Contraseña: Farmhouse Base Datos: Datos Tabla: Partido

Código Agregamos las Referencias:

Agregamos los componentes necesarios para la conexión:

El Código para la conexión

Adicionalmente un código para listar los servidores disponibles:

El código Completo:

Y el Formulario Windows:

Seguridad en SQL Server 2008En lo que respecta a seguridad en SQL Server se deben considerar los siguientes aspectos:

Autentificación: Verificar la identidad del usuario.

Autorización: Permitir o no, acceder a un recurso o realizar una determinada acción en

función a la identidad del usuario.

Integridad: Asegurar que la información no ha sido modificada en transito (Firma digital).

Privacidad: Asegurar que la información solo puede ser leída por el destinatario (Cifrado).

AutentificaciónExisten dos modos posibles de autenticación para permitirnos el acceso al motor de base de datos :

La autenticación de Windowso Windows confirma la identidad del usuario con el token de la entidad de seguridad de Windows del

sistema operativo.o Es considerada de confianza (Más seguro).o Usa el protocolo de seguridad de Kerberos (Proporciona un mecanismo para la autenticación mutua

entre entidades antes de que se establezca una conexión de red segura).

La autenticación de SQL Servero Con nombre de usuario y contraseña guardada en el SQL Server (Requerido en cada establecimiento

de conexión).o Permite entornos con sistemas operativos mixtos.o Tres directivas de contraseñas opcionales para los inicios de sesión de SQL Server.

El usuario debe cambiar la contraseña en el siguiente inicio de sesión:

Exige que el usuario cambie la contraseña la próxima vez que se conecte. Exigir expiración de contraseña

Un usuario puede utilizar una contraseña durante un periodo antes de que se le obligue a cambiarla. Exigir directivas de contraseñas

Las contraseñas deben cumplir los requerimientos de complejidad.

Autentificación - Configuración Durante la instalación.

Hay dos modos posibles: El modo de autenticación de

Windows habilita la autenticación de Windows y deshabilita la autenticación de SQL Server.

El modo mixto habilita tanto la autenticación de Windows como la de SQL Server.

Puede Cambiarse posteriormente. En el SQL Server Management

Studio - Clic secundario en el servidor - Propiedades.

En la página Seguridad, bajo Autenticación de servidor, seleccione el nuevo modo de autenticación del servidor.

Autorización: Gestión de Permisos En SQL Server nos encontramos con niveles o capas en los cuales podemos gestionar la seguridad.

A nivel de servidor (Inicio de Sesión): Representa la conexión a la Instancia del SQL Server. Se crea un Inicio de Sesión para que una persona (o aplicación) pueda conectarse a SQL Server. El que alguien tenga acceso al servidor no quiere decir que pueda acceder a las bases de datos que

se encuentran en él. En cada Base de Datos a la que el Inicio de Sesión desee acceder deberemos de tener un Usuario. Gestionamos que funciones va a desempeñar sobre el servidor.

A nivel de base de datos (Usuarios): Para que un Inicio de Sesión tenga acceso a una base de datos, tenemos que crear en ella un

usuario. Que un usuario tenga acceso a una base de datos no quiere decir que tenga acceso a todo su

contenido, ni a cada uno de los objetos que la componen. Gestionamos que funciones va a desempeñar sobre la base de datos.

A nivel de Objeto: Tenemos que irle concediendo o denegando permisos sobre cada uno de los objetos que componen

la base de datos.

Nivel de Servidor – Funciones Las funciones fijas de servidor cuentan con un

conjunto fijo de permisos y ámbito de servidor. Están pensadas para su uso en la administración de

SQL Server y los permisos asignadas a ellas no se pueden modificar.

Se pueden asignar inicios de sesión a las funciones fijas de servidor sin necesidad de disponer de una cuenta de usuario en una base de datos.

Nombre del rol de nivel de servidor Descripción

sysadmin Pueden realizar cualquier actividad en el servidor. Se le concede con la opción GRANT: CONTROL SERVER

serveradmin Pueden cambiar las opciones de configuración en el servidor y apagarlo. Se le concede: ALTER ANY ENDPOINT, ALTER RESOURCES, ALTER SERVER STATE, ALTER SETTINGS, SHUTDOWN, VIEW SERVER STATE

securityadmin

Administran los inicios de sesión y sus propiedades. Pueden administrar 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.Se le concede: ALTER ANY LOGIN

processadmin Pueden finalizar los procesos que se ejecuten en una instancia de SQL Server. Se le conceden: ALTER ANY CONNECTION, ALTER SERVER STATE

setupadmin Pueden agregar y quitar servidores vinculados. Se le concede: ALTER ANY LINKED SERVER

bulkadmin Pueden ejecutar la instrucción BULK INSERT. Se le concede: ADMINISTER BULK OPERATIONS

diskadmin Se usa para administrar archivos de disco. Se le concede: ALTER RESOURCES

dbcreator Pueden crear, modificar, quitar y restaurar cualquier base de datos. Se le concede: ALTER ANY DATABASE

publicSe le concede el permiso VIEW ANY DATABASE y el permiso CONNECT en los extremos predeterminados (TSQL Local Machine, TSQL Named Pipes, TSQL Default TCP, TSQL Default VIA). Solo se le asigna los permisos públicos en objetos cuando se desea que estos estén disponible para todos los usuarios.

Nivel de Base de Datos - Funciones

Nombre de función de nivel de base de datos

Descripción

db_ownerLos miembros de la función de base de datos fija 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_securityadminLos miembros de la función de base de datos fija db_securityadmin pueden modificar la pertenencia a funciones y administrar permisos. Si se agregan entidades de seguridad a esta función, podría habilitarse un aumento de privilegios no deseado.

db_accessadminLos miembros de la función de base de datos fija 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 de la función de base de datos fija db_backupoperator pueden crear copias de seguridad de la base de datos.

db_ddladminLos miembros de la función de base de datos fija db_ddladmin pueden ejecutar cualquier comando del lenguaje de definición de datos (DDL) en una base de datos.

db_datawriter Los miembros de la función de base de datos fija db_datawriter pueden agregar, eliminar o cambiar datos en todas las tablas de usuario.

db_datareader Los miembros de la función de base de datos fija db_datareader pueden leer todos los datos de todas las tablas de usuario.

db_denydatawriterLos miembros de la función de base de datos fija db_denydatawriter no pueden agregar, modificar ni eliminar datos de tablas de usuario de una base de datos.

db_denydatareaderLos miembros de la función de base de datos fija db_denydatareader no pueden leer datos de las tablas de usuario dentro de una base de datos.

Las funciones fijas de base de datos incluyen un conjunto predefinido de permisos diseñados para permitir administrar grupos de permisos con facilidad.

Todos los usuarios de una base de datos pertenecen a la función pública de la base de datos.

Creación de Funciones – Nivel de Base de Datos

Para crear una función definida por el usuario Abra SQL Server Management Studio. Expanda Bases de datos, Bases de datos del sistema,

msdb, Seguridad y Funciones. En el nodo Funciones, haga clic con el botón

secundario en Funciones de base de datos y, a continuación, en Nueva función de base de datos.

En la página General, indique un nombre y si lo desea, especifique un propietario, esquemas de propiedad y agregue miembros de funciones.

Opcionalmente, haga clic en Permisos y configure permisos de objetos.

Opcionalmente, haga clic en Propiedades extendidas y configure las propiedades extendidas.

Haga clic en Aceptar.

Existen dos tipos de funciones de nivel de base de datos en SQL Server: Las funciones fijas de base de datos, que están predefinidas en la base de datos. Las funciones flexibles de base de datos, que pueden crearse.

Creación de Funciones – Nivel de aplicación Las funciones de aplicación proporcionan un método para asignar

permisos a una aplicación sin necesidad de utilizar una función o un usuario de base de datos.

Los usuarios se pueden conectar a la base de datos, activar la función de aplicación y asumir los permisos concedidos a la aplicación.

Los permisos concedidos a la función de aplicación se mantienen mientras dura la conexión.

Las funciones de aplicación se activan cuando una aplicación cliente proporciona un nombre de función de aplicación y una contraseña en la cadena de conexión.

Los siguientes pasos muestran el proceso mediante el cual una función de aplicación cambia de contextos de seguridad: Un usuario ejecuta una aplicación cliente. La aplicación cliente se conecta con una instancia de SQL Server como usuario. A continuación, la aplicación ejecuta el procedimiento almacenado sp_setapprole con una

contraseña que sólo conoce la aplicación. Si el nombre y la contraseña de la función de aplicación son válidos, la función de aplicación

se habilita. En este momento, la conexión pierde los permisos del usuario y asume los permisos de la

función de aplicación. Los permisos adquiridos durante la función de aplicación se mantienen mientras dura la

conexión.

Integridad – Cifrado de Conexiones SQL Cuando se conecta a una instancia de Microsoft SQL Server, los datos que

se transmiten entre el equipo servidor y el equipo cliente se pueden cifrar mediante uno de los siguientes métodos de cifrado: cifrado SSL para cifrar todos los datos que se transmiten entre un equipo de

aplicación y una instancia de SQL Server. El cifrado SSL se lleva a cabo en la biblioteca de red del super socket (DBNETLIB.DLL y SSNETLIB.DLL) y se aplica a todos los protocolos entre equipos compatibles con SQL Server. Habilitar el cifrado disminuye el rendimiento de las bibliotecas de red. El cifrado exige estas acciones además de todo el trabajo para una conexión no cifrada: Se requiere un viaje de ida y vuelta adicional en la red en el momento de la conexión.  Todos los paquetes enviados desde la aplicación a la instancia de SQL Server deben ser

cifrados por la biblioteca de red de cliente y descifrados por la biblioteca de red del servidor.

cifrado multiprotocolo biblioteca de red de servidor The Multiprotocol utiliza la función de llamada (RPC) de procedimiento remoto del sistema operativo. Además, la biblioteca de red de multiprotocolo del servidor se comunica a través de la mayoría de los mecanismos de comunicación entre procesos (IPC), tales como sockets TCP/IP y canalizaciones con nombre, que admite el sistema operativo. Si configura la instancia de SQL Server para escuchar en la biblioteca de red de servidor multiprotocolo, puede cifrar los datos que corresponde a la instancia de SQL Server sin utilizar certificados.

Privacidad - Encriptación¿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 (2005) Encriptación transparente (TDE), afecta

a toda la BD (2008)

¿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

Cifrado de Datos Transparente (TDE) La aplicación o el desarrollador no tienen que hacer nada. El nivel de protección es configurable a distintos niveles:

De usuario. De ítem: una BD entera, archivos de datos, archivos de log.

Incluso se puede encriptar el backup. Los datos son encriptados el momento en que están siendo grabados en el

disco y los desencripta en el momento en que son leídos. La clave del DTE de SQL Server 2008 se basa en usar usa una clave especial:

Database Encription Key (DEK). 

Para usar TDE, siga estos pasos: Cree una clave maestra Cree u obtenga un certificado

protegido por la clave maestra Cree una clave de cifrado de base

de datos y protéjala con el certificado

Configure la base de datos para que utilice el cifrado

Auditoria SQL Server La auditoría de una instancia de SQL Server o de una base de datos de

SQL Server implica el seguimiento y registro de los eventos que se producen en el sistema.

Esta característica permiten a los administradores implementar una estrategia de defensa optimizada para los riesgos de seguridad específicos de su entorno.

Podemos configurar la auditoría automática mediante SQL Server Audit. Característica incorporada en versión 2008 (no admite sql server

express) Permite auditar los accesos y acciones sobre una base de datos u

objetos que contenga Útil para cumplir con la ley de protección de datos No actúa igual que la traza de SQL, esta supone menos coste de

rendimiento.

Crear Auditoria El proceso general de creación y uso de una auditoría es el siguiente:

Cree una auditoría y defina el destino. Puede utilizar SQL Server Management Studio o Transact-SQL para definir una

auditoría).

Cree una especificación de auditoría de servidor o una especificación de auditoría de base de datos que se asigne a la auditoría. Habilite la especificación de auditoría. Especificación de auditoría de servidor, recopila muchos grupos de acciones de

nivel de servidor . Especificación de auditoría de base de datos, recopila acciones de auditoría de

nivel de base de datos.

Habilite la auditoría. Puede leer los registros de eventos de Windows mediante la utilidad Visor de

eventos en Windows. Para los destinos de archivo, puede utilizar tanto el Visor del archivo de registros en SQL Server Management Studio para leer el archivo de destino.

Referencias Descripción del Cifrado de datos transparente (TDE)

http://msdn.microsoft.com/es-es/library/bb934049.aspx Roles de servidor y base de datos en SQL Server (ADO.NET)

http://msdn.microsoft.com/es-es/library/bb669065.aspx Usuarios e Inicio de Sesión (SQL Server 2008 Express)

http://social.msdn.microsoft.com/Forums/es-ES/sqlserveres/thread/30f93bad-e1cd-4b70-a9d6-0509dfb6f905/ Auditoría (motor de base de datos)

http://msdn.microsoft.com/es-es/library/cc280526.aspx Crear y administrar auditorías con SQL Server Management Studio

http://msdn.microsoft.com/es-es/library/cc280500.aspx