790 likes | 935 Views
HOL-SQL 23. Microsoft SQL Server 2008. Administración y seguridad. Rubén Alonso Cebrián ralonso@informatica64.com www.puntocompartido.com. Agenda. Utilización de Server Management Studio Uso de Comfiguration Manager Utilidad sqlcmd SQL Management Objects (SMO) SQL Profiler
E N D
HOL-SQL 23 Microsoft SQL Server 2008 Administración y seguridad Rubén Alonso Cebrián ralonso@informatica64.com www.puntocompartido.com
Agenda • Utilización de Server Management Studio • Uso de Comfiguration Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
Agenda • Utilización de Server Management Studio • Uso de Computer Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2005 • Gestión de permisos • Gestión de Certificados
SQL Server Management Studio • Entorno integrado para el acceso, configuración y administración de todos los componentes de SQL Server 2008 • Combina las capacidades de las siguientes herramientas de versiones anteriores: • Enterprise Manager • Query Analyzer • Analysis Manager,
Características • Gestión completa de: • Servidores de BBDD relacionales • Servidores de BBDD de Analysis Services • Servidores de Reporting Services • Servidores de Integration Services • Herramientas visuales para generar: • Transact-SQL • XMLA • MDX • DMX
Object Explorer • Crear y administrar bases de datos y objetos. • Ver y modificar propiedades de bases de datos . • Creación de scripts. • Creación de orígenes de datos • Gestión de permisos y privilegios • Configuración de la replicación • Creación de paquetes *.dtsx. • Ver archivos de log • Administración del agente SQL
SQL Server Management Studio Solutions • Útil para agrupar consultas y conexiones almacenándolas y permitiendo su ejecución posterior. • Una solución es una colección de uno o varios proyectos de SQL Server Management Studio projects. • Un proyecto de Server Management Studio es un conjunto de conexiones, definiciones y consultas, que aportan el modo correcto de organizar consultas y conexiones relacionadas
Agenda • Utilización de Server Management Studio • Uso de Configuration Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
Agenda • Utilización de Server Management Studio • Uso de Computer Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
Definición sqlcmd • Ofrece la posibilidad de ejecutar instrucciones Transact-SQL desde la línea de comandos y programar batch jobs. • Utiliza OLE DB, las versiones previas usaban ODBC o DB-Library. • Soporte para osql aunque no estará soportado en versiones futuras • Mejoras • Posibilidad de usar variables • Conexión dinámica a servidores • Dedicated Administrator Connection (DAC), permite a un dba conectarse al servidor para resolver problemas
Uso de variables con sqlcmd • Posibilidad de crear scripts genericos que pueden ejecutarse contra distintas BBDD y servidores • A parte de las variables de entorno usadas con el modificador –v, pueden definirse variables dentro de los scripts con el modificador :setvar
Dedicated Administrator Connection (DAC) • Permite la conexión incluso cuando el servidor se cuelga o no está disponible. • No podrá usarse cuando el servicio SQL Server se ha pausad, o detenido • Se permite el uso de un único DAC
Agenda • Utilización de Server Management Studio • Uso de Computer Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
SQL Management Objects • API que permite automatizar tareas administrativas ya que reduce la posibilidad de errores e inconsistencias. • Muy operativo cuando existen múltiples servidores e instancias • SMO implementa un ensamblado .NET a(Microsoft.SqlServer.Smo.dll). • Define una jerarquía de objetos así como su propio modelo de objetos. • Permite generar aplicaciones que para realizar tareas administrativas: • Recuperacion y modificacion de configuraciones • Creacion de nuevas BBDD • Backups • Gestión de trabajos.
SQL Management Objects Copia de seguridad utilizando SMO con diversos lenguajes (VB.Net, C#, Vbscript) Fuente: http://www.sqldbatips.com/showarticle.asp?ID=37
Agenda • Utilización de Server Management Studio • Uso de Computer Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
Mejoras en el profiler • Aporta mayor información sobre rendimiento y proceso de BBDD que en versiones anteriores • Captura trazas y eventos enviados por SQL Server 2008 Analysis Services. • Almacenar resultados en XML
Agenda • Utilización de Server Management Studio • Uso de Computer Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
Características Ambito a nivel de base de datos • Se desencadenan cuando un usuario ejecuta una operación de definion DDL, p.e CREATE TABLE, DROP TRIGGER, o UPDATE STATISTICS. Ambito a nivel de servidor
Agenda • Utilización de Server Management Studio • Uso de Computer Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
Consultas a Metadatos estáticos • Aportan información sobre objetos de base de datos, tablas, procedimientos almacenados, restricciones.
Agenda • Utilización de Server Management Studio • Uso de Computer Manager • Utilidad sqlcmd • SQL Management Objects (SMO) • SQL Profiler • DDL Triggers • Vistas de Metadatos • Seguridad en SQL Server 2008 • Gestión de permisos • Gestión de Certificados
Motor de base de datos. Seguridad Iniciativa Trustworthy Computing: • Seguro por diseño • Seguro por defecto • Seguro en implementación • Seguro en comunicaciones http://www.microsoft.com/mscorp/twc/default.mspx
Motor de base de datos. Seguridad Configuración de seguridad recomendada: • SSOO Windows Server 2003 o Windows Server 2008 • Microsoft Windows Server UpdateService (WSUS) • Microsoft SQL Server SurfaceAreaConfiguration
Motor de base de datos. Seguridad Autenticación: • Procesos de autenticación encriptados por defecto de igual forma que SSL para conexiones clientes Microsoft SQL Server 2005 o superior • Reforzamiento de gestión de contraseñas (NetValidatePasswordPolicy()) mediante las políticas de contraseñas de Windows Server 2003 en lo referente a complejidad, vencimiento, bloqueo, etc. • PasswordPolicy • PasswordExpiration • Account Lockout Policy
Modelo de seguridad de SQL Server Conectar al PC de SQL Server Establecer credenciales de inicio de sesión Establecer un contexto de base de datos Verificar los permisos para todas las acciones Solicitud de conexión de red / protocolo de enlace de preinicio de sesión Solicitud de autenticación de inicio de sesión a SQL Server Cambio a una base de datos y autorización de acceso Intento para realizar alguna acción
Aplicación de la política de contraseñas • Aplicación de lo siguiente en los inicios de sesión • Fuerza de la contraseña • Expiración de la contraseña • Cierres de cuenta • Sigue la política local de contraseña NT • Da soporte consistente a las políticas empresariales en toda la compañía • Enfoque • La nueva política de contraseñas verifica la API en .NET Server • Invocado durante la autenticación, establece y reestablece la contraseña • En el servidor Win2K • La API no está disponible • Sólo da soporte a la complejidad de contraseña nativa de SQL Server
Política de contraseñas para los inicios de sesión • Durante la autenticación • Cierre de la cuenta en caso del ataquede fuerza bruta • Restricciones de vencimiento de contraseña – si se establece la expiración • Establecimiento o cambio de contraseña • Se aplica la complejidad de contraseña y se verifica el historial • Soporte del lado del cliente • Permite el cambio de contraseña en el inicio de sesión, similar a Windows • Capacidad para deshabilitar los inicios de sesión rápidamente
Fortalecer la autenticación de SQL • Canal más fuerte para el protocolo de autenticación en el inicio de sesión estándar de SQL • El canal está encriptado utilizando certificados generados por SQL • No se necesita la carga de un certificado SSL • Similar a la implementación actual de SSL • Mecanismo predeterminado para los inicios de sesión estándar SQL en los clientes SQL Server 2008 que se comunican con un servidor SQL Server 2008 • Transparente a las aplicaciones; no requiere un cambio de aplicación • Soporte para la autenticación bajo el viejo estilo para los clientes con un nivel menor
Mejoras de seguridad en SQL Server 2008 • Password policy • Ámbitos jerárquicos de seguridad • principals, asegurables y permissions • Espacios de nombres independientes del usuario, organizados por schemas. • Visibilidad limitada de los metadatos. • Contexto de ejecución • Posibilidad de especificar en base a que cuenta de usuario se ejecutará un objeto
Arquitectura de seguridad en SQL Server 2008 • Principals • Cuentas de seguridad que pueden acceder al sistema • Asegurables • Recursos del sistema • Permissions • Permiten realizar una acción en un asegurable
Principals • A nivel de windows • Grupos de Windows, cuentas de dominio y cuentas locales de usuario • Sql Server • Base de datos
Asegurables • Server • Logins • HTTP endpoints • Certificates • Databases • Servicios • Assemblies • and XML schemas. • Schema • Tablas • Vistas • procedimientos
Permisos • Se utilizan para permitir el acceso a los Asegurables • GRANT, REVOKE y DENY establecen las acciones que los principales pueden realizar en los Asegurables • Nuevos permisos en función de los nuevos asegurables • Los permisos establecidos en un ámbito se heredan a los ámbitos más bajos
Administración de logins • CREATE LOGIN • sp_addlogin • sp_grantlogin Server login password policies
Separación del esquema de usuarios • Separación de temas principales y esquemas • Principal • Entidades contra las cuales los objetos están asegurados • En vivo en la vista sys.database_principals • Esquema • Contenedor de objetos; tercera parte de un nombre de 4 partes • En vivo en la vista de sys.schemas • Noción del Esquema por predeterminación • Propiedad del rol de la aplicación o del usuario • Utilizado en la resolución del nombre; buscar algoritmos por objetos • Mantenimiento en sys.database_principals • Nueva DDL para usuario y esquemas • CREAR/ALTERAR/colocar para USUARIO, ROL y ESQUEMA • Colocar al usuario no requiere la reescritura de la aplicación
Schemas • Organizan las bases de datos en espacios de nombres • Por defecto una base de datos contiene un usuario denominado dbo que represente al propietario de la base de datos • La base de datos también incluye un único schema denominado también dbo. • Se pueden generar multiples schemas en la base de datos para organizar logicamente objetos en distintos espacios de nombre
Esquemas predeterminados • Se utiliza para propósitos de resolución de nombres • No todos los usuarios necesitan poseer esquemas • Da la capacidad para compartir la búsqueda de resolución de nombres entre varios usuarios • El esquema DBO no necesita ser el único esquema compartido, desde la perspectiva de búsqueda de nombre • Utilidad • Crear objetos garantizados al hacer búsquedas de nombre de cada contexto, los objetos no necesitan ser creados en un esquema DBO. • Al tener estos contextos apuntando a otro esquema como uno predeterminado. • Permitir la creación de los objetos en el esquema DBO podría crear riesgos a través de la cadena de propiedad. • Esto se mitiga utilizando esquemas “con menores privilegios” como el esquema predeterminado • ‘menores privilegios’: Son propiedad de una cuenta con menores privilegios