Seguridad en SQL Server



Documentos relacionados
SEGURIDAD SQL SERVER

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

Seguridad en SQL Server 2005

UNIVERSIDAD DEL AZUAY

Microsoft Dynamics. Instalación de Management Reporter for Microsoft Dynamics ERP

SQL Server 2008 Seguridad. Marta Zorrilla

Microsoft Dynamics. Migración de FRx 6.7 a Management Reporter for Microsoft Dynamics ERP

Microsoft SQL Server 2005

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

Curso Online de Microsoft

UNIDAD DIDACTICA 3 USUARIOS Y GRUPOS EN REDES WINDOWS 2003 SERVER I

Oracle 12c DISEÑO Y PROGRAMACIÓN

Instalación y configuración de Windows SharePoint Services (WSS) 2003

Toda base de datos relacional se basa en dos objetos

XPERTO EN DISEÑO DE PÁGINAS WEB

Curso Online de Microsoft Access Avanzado

Creación y administración de grupos de dominio

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

CI Politécnico Estella

1

Autenticación Centralizada

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Bases de Datos 2. Teórico

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Creación y administración de grupos locales

Manual de Usuario Avanzado Respaldo Cloud

POLÍTICAS DE SEGURIDAD PARA EL DESARROLLO DE SISTEMAS DE CAPUFE

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Select table data Insert table data Update table data Delete table data Create table

REQUISITOS PARA EL USO DEL REGISTRO ELECTRÓNICO

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Familia de Windows Server 2003

Consultas con combinaciones

INSTALACIÓN DE SQL SERVER 2008 Y SQL SERVER 2008 EXPRESS

Utilidades de la base de datos

SITRÁN ARAGÓN TRÁMITES Y SERVICIOS EN LÍNEA (WEB GANADEROS) CONFIGURACIÓN

Programación páginas web con ASP.NET 3.5 (C#)

Base de datos relacional

Administración de Redes

WINDOWS : SERVIDOR DHCP

Guía Rápida de Puesta en Marcha de MailStore

Acronis License Server. Guía del usuario

Componentes de Integración entre Plataformas Información Detallada

Internet Explorer proporciona diversas características que le ayudan a proteger su privacidad y

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

DATOS EN SERVIDOR DE RED PROCEDIMIENTO PARA INSTALACIÓN Y CONFIGURACIÓN DE BASES DE DATOS EN SERVIDORES DE RED

Implementación de redes Windows 2000

FACILITAR EL DESARROLLO Y EL USO DE LA BASE DE DATOS DENTRO DE LAS GUÍAS DE ACCIÓN DEFINIDAS POR LA ADMINISTRACIÓN DE LOS DATOS

HOWTO: Configurar SQL Server Express, para que permita conexiones remotas por tcp con autenticación de servidor

Administración de servidores WINDOWS

Tableau Online Seguridad en la nube

Técnicas de Programación

10775 Administering Microsoft SQL Server 2012 Databases

8 SQL SERVER 2008 RA-MA

Symantec Desktop and Laptop Option

Guía del usuario de DocuShare Agent

Disco Virtual: Integración con Directorio Activo

Administrar El Usuario Mediante Windows NT

Instalación de SQL Server Express Edition en Dominio WhitePaper Junio de 2008

INSTALACIÓN DE MÚLTIPLES SUPERVISOR VS EN RED

CURSO DE SQL SERVER 2005

GUIA DE LABORATORIO Nro. 4

Trabajo 6 ADMINISTRACIÓN REMOTA Y SERVIDOR DE APLICACIONES EN WINDOWS. Jesús Losada - Jesús López - 2º ASIR

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

REQUISITOS PARA EL USO DEL REGISTRO ELECTRÓNICO

Curso 2º SMR Módulo: SOR Sesión 6 SAMBA: Creando usuarios y grupos en Zentyal

Información sobre seguridad

Práctica: Copia de seguridad y restauración de datos

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Instrucciones de instalación de IBM SPSS Modeler Server 16 para Windows

Instalación del Software Magaya

SQL Server 2014 Administración de una base de datos transaccional con SQL Server Management Studio

Nombre: Francis Ariel Jiménez Zapata. Matricula: Tema: Trabajando con Windows Server Materia: Sistema Operativo II.

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

FTP. File Transfer Protocol. Protocolo De Transferencia De Archivo. Administración de Redes de Computadores. Ficha:

Curso de PHP con MySQL Gratis

DOCENTES FORMADORES UGEL 03 PRIMARIA

SIIGO Pyme. Templates. Cartilla I

Material de apoyo para la configuración de ibjeos en Active Directory

Inicio Programas Accesorios Explorador de Windows Archivo Nuevo Carpeta

Google Groups. Administración de Grupos de Google Apps

Guía de integración de Management Reporter for Microsoft Dynamics GP

Instrucciones de instalación de IBM SPSS Modeler (licencia de usuario autorizado)

ADMINISTRACIÓN DE BASE DE DATOS

Ayuda Aplicación SIGI

El proceso de Instalación de Microsoft SQL Server 2008

Microsoft Access 2007 (Completo)

DATOS EN SERVIDOR DE RED PROCEDIMIENTO PARA INSTALACIÓN Y CONFIGURACIÓN DE BASES DE DATOS EN SERVIDORES DE RED

Windows Server Windows Server 2003

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

Manual de Usuario: Servidor Cloud y Servidor Cloud Gestionado

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Guía de Laboratorio Base de Datos I.

Transcripción:

Seguridad en SQL Server

Jesús s LópezL MVP Visual Basic Visual Developer Formador en Alhambra-Eidos Mentor Asociado Solid Quality Learning Consultor y desarrollador

Una asociación n de expertos en SQL Server por todo el mundo Mentores principales: Itzik Ben-Gan Kalen Delaney Fernando G. Guerrero Michael Hotek Brian Moran Ron Talmage Mentores asociados: Herbert Albert Gianluca Hotz Tibor Karaszi Andrew Kelly Dejan Sarka Wayne Snyder Jesús s LópezL Eladio Rincón Miguel Egea Te ayudan a sacarle el mayor partido a SQL Server. Formación n y Consultoría

Agenda Arquitectura de Seguridad en SQL Server 2000 Creación n y Gestión n de inicios de sesión Gestión n de permisos Estrategias de seguridad Novedades de Seguridad en SQL Server 2005

Arquitectura de seguridad en SQL Server 2000

Aspectos de la seguridad Autentificación: n: Verificar la identidad del usuario Autorización: Permitir o no acceder a un recurso o realizar una determinada acción n en función n de la identidad del usuario Integridad: Asegurar que la información n no ha sido modificada en tránsito. Firma digital Privacidad: Asegurar que la información n sólo s puede ser leída por el destinatario. Cifrado

Tipos de autentificación Windows (integrada o de confianza) SQL Server delega en Windows para realizar la autentificación. n. Sujetas a las directivas de Windows SQL Server (o estándar) Nombre de usuario y contraseña a (hash) guardada en SQL Server. Requeridos en cada establecimiento de conexión. n.

Configuración n de la autentificación SQL Server permite dos modos: Windows (predeterminado) SQL Server y Windows Establecido en la instalación Puede cambiarse posteriormente: Administrador corporativo Valor LoginMode en el registro Requiere reinicio del servicio Saber el modo actual: SERVERPROPERTY('IsIntegratedSecurityOnly')

Delegación: Kerberos Permite que una instancia de SQL Server se conecte con otra instancia en otra máquina m con las credenciales del cliente. Es necesario: Directorio activo Usar protocolo TCP-IP Confiar en el equipo para realizar delegación Un nombre principal de servicio para SQL Server (setspn) Las cuentas del cliente tiene que ser delegables. Ver artículo 319723 : INF: SQL Server 2000 Kerberos support including SQL Server virtual servers on server clusters

Autorización: gestión n de permisos Cuenta de inicio de sesión n requerido para establecer conexión La autorización n puede establecerse por medio de: Roles de servidor Roles de bases de datos Permiso de acceso a base de datos Permiso de ejecución n de sentencias Permisos específicos para objetos de base de datos

Integridad y privacidad Dos mecanismos disponibles en SQL Server: Cifrado multiprotocolo: Debe usarse multiprotocolo tanto en el cliente como en el servidor Sólo funciona con la instancia predeterminada Requiere configuración n en el cliente y en el servidor Ver artículo 841695: How to establish and enforce encrypted multiprotocol connections in SQL Server 2000 SSL: Requiere certificado digital en el Servidor. En el cliente: certificado de la entidad raíz z que emitió el certificado del servidor Ver artículo 276553 : HOW TO: Enable SSL Encryption for SQL Server 2000 with Certificate Server

Demo Configurar la autentificación Administrador corporativo Registro: LoginMode Ver la configuración: n: SELECT SERVERPROPERTY( IsIntegratedSecurityOnly IsIntegratedSecurityOnly )

Creación n y gestión n de inicios de sesión

Inicios de sesión Permiten o deniegan la conexión n a SQL Server Definidos a nivel de servidor Necesario para conectarse a SQL Server Dos tipos basados en la autentificación: n: SQL Server: nombre + contraseña Windows: usuario o grupo de Windows

Inicios de sesión n predefinidos Al instalarse SQL Server se crean dos inicios de sesión Pueden realizar cualquier tarea en SQL Server (pertenecen al rol de servidor sysadmin) BUILTIN\Administradores. (grupo predefinido de Windows). Puede eliminarse y modificarse los permisos. sa: tipo estándar. No puede eliminarse ni modificarse. No estará disponible si sólo s está configurada la autentificación n Windows.

Creación n de inicios de sesión Sólo sysadmin y securityadmin Mediante el Administrador Corporativo Mediante procedimientos almacenados SQL Server: sp_addlogin Windows: sp_grantlogin, sp_denylogin Información n de inicios de sesión: sp_helplogins syslogins

Gestión n de inicios de sesión Eliminar un inicio de sesión: Sólo sysadmin y securityadmin sp_droplogin (SQL Server) sp_revokelogin (Windows) No se puede si: Es propietario de alguna base de datos Es usuario de alguna base de datos Es propietario de algún n objeto de alguna base de datos. Cambiar contraseña a (sólo SQL Server) sp_password Sólo sysadmin, securityadmin y el propio usuario. Propiedades: Base de datos predeterminada: sp_defaultdb Lenguaje predeterminado: sp_defaultlanguage Sólo sysadmin, securityadmin y el propio usuario.

Demo Creación n y gestión n de inicios de sesión: Administrador Corporativo: T-SQL: Crear inicio sesión n SQL Server y Windows Establecer base de datos y lenguaje predeterminados Eliminar inicio de sesión Crear y gestionar inicios de sesion.sql

Gestión n de permisos

Roles de servidor Cada rol agrupa un conjunto de permisos. Facilitan la administración n de la seguridad. Definidos a nivel de servidor. Independientes de las bases de datos. Un inicio de sesión n puede pertenecer a cero o másm roles de servidor Un inicio de sesión n que pertenezca a un rol de servidor adquiere los permisos de ese rol. Son fijos: No pueden modificarse sus permisos No pueden eliminarse No pueden añadirse a adirse nuevos roles de servidor

Lista de roles de servidor sysadmin: puede realizar cualquier actividad en SQL Server securityadmin: administra los inicios de sesión serveradmin: configura el servidor setupadmin: configura servidores vinculados y procedimiento almacenado de arranque processadmin: puede desconectar usuarios diskadmin: (obsoleto 6.5) dbcreator: crea bases de datos bulkadmin: realiza inserciones masivas

Gestión n de roles de servidor Obtener información n (todos pueden): sp_helpsrvrole. Lista de roles sp_helpsrvrolemember. Lista de miembros syslogins: una columna por rol de servidor Añadir un inicio de sesión n a un rol de servidor: Sólo sysadmin y miembros del rol sp_addsrvrolemember Quitar un inicio de sesión n de un rol de servidor: Sólo sysadmin y miembros del rol sp_dropsrvrolemember

Demo Gestión n de roles de servidor Administrador Corporativo: T-SQL: Lista de roles de servidor Permisos de los roles de servidor Miembros de un rol: ver, añadir a adir y quitar. Roles a los que pertenece un inicio de sesión: ver, añadira adir y quitar. Roles de servidor.sql

Acceso a una base de datos Los siguientes pueden conectarse: sysadmin propietario de la base de datos Los usuarios de la base de datos Cualquier inicio de sesión n si existe el usuario guest. Usuario de base de datos: Definido a nivel de base de datos Corresponde con un inicio de sesión dbo: usuario predefinido. (data base owner). Corresponde con sysadmin, propietario de base de la base de datos, rol db_owner. guest: invitado. Puede existir o no

Conceder acceso a una base de datos Pueden: sysadmin Propietario db_owner db_accessadmin Al conceder acceso a un inicio de sesión n a una base de datos: se crea el usuario correspondiente en esa base de datos Pertenece al rol public Conceder acceso: sp_grantdbaccess y sp_adduser Quitar el acceso: sp_revokedbaccess Reasignar Inicios de sesión n con usuarios. Útil cuando se anexa o restaura una base de datos: sp_change_users_login Info: sp_helpuser

Propietario de una base de datos Puede realizar cualquier operación n en la base de datos. Es en principio quien crea la base de datos Puede cambiarse con sp_changedbowner Saber el propietario: sp_helpdb

Demo Propietario de una base de datos y gestión n de usuarios Administrador Corporativo: T-SQL: Ver propietario de base de datos Ver usuarios de base de datos Crear usuario Eliminar usuario Acceso y propietario base datos.sql

Roles de bases de datos Cada rol agrupa un conjunto de permisos. Facilitan la administración n de la seguridad. Definidos a nivel de base de datos. Un usuario puede pertenecer a uno o más m s roles de base de datos Un usuario que pertenezca a un rol de base de datos adquiere los permisos de ese rol. Un rol puede contener otros roles. Tres tipos: Predefinidos Definidos por el usuario: Estándar De aplicación

Roles predefinidos de base de datos Son fijos: No pueden modificarse sus permisos. Excepto el de Public No pueden eliminarse No pueden añadirse a adirse nuevos roles predefinidos Los siguientes: db_owner: realizan cualquier operación n en la base de datos db_backupoperator: realiza copias de seguridad db_datareader: lee de cualquier tabla db_datawriter: escribe en cualquier tabla db_denydatawriter: no puede escribir en ninguna tabla db_denydatareader: no puede leer de ninguna tabla db_ddladmin: crea y modifica objetos en la base de datos db_accessadmin: gestiona usuarios en la base de datos db_securityadmin: gestiona los permisos

Información n de roles predefinidos de base de datos Lista: sp_helpdbfixedrole (todos) Ver los permisos: sp_dbfixedrolepermission (todos)

Roles definidos por el usuario Agrupan un conjunto de permisos No tienen permisos predefinidos Los permisos se establecen por: Pertenencia a otros roles (predefinidos y estándar definidos por el usuario) Permisos de sentencias Permisos específicos de objetos. Dos tipos: Estándar De aplicación Pueden gestionarlos: sysadmin, propietario, db_owner y db_securityadmin

Roles estándar definidos por el usuario Pueden contener usuarios y roles definidos por el usuario Pueden pertenecer a roles predefinidos y roles estándar Lista: sp_helprole Añadir: sp_addrole Eliminar: sp_droprole

Roles de aplicación Pueden pertenecer a roles predefinidos y roles estándar. No pueden contener miembros Tienen asociada una contraseña Son activados por una aplicación n cliente por medio de sp_setapprole. Una vez activado la conexión n adquiere los derechos de rol, pierde los que tenía, y ya no puede acceder a ninguna otra base de datos. Crear: sp_addapprole Eliminar: sp_dropapprole Cambiar contraseña: a: sp_approlepassword

Gestión n de roles: pertenencia Pueden añadir a adir y quitar: sysadmin, propietario, db_owner y db_securityadmin Añadir un miembro al rol (puede añadirse a adirse un usuario o un rol definido por el usuario): sp_addrolemember Quitar un miembro del rol: sp_droprolemember Ver los roles a los que pertenece un usuario: sp_helpuser Ver los roles y sus miembros: SELECT FROM roles.name As Rol, members.name As Miembro sysusers roles JOIN sysmembers mr ON roles.uid = mr.groupuid JOIN sysusers members ON members.uid = mr.memberuid

Demo Roles de bases de datos: Administrador corporativo: T-SQL: Ver roles predeterminados Añadir y quitar miembros al rol Añadir y quitar roles definidos por el usuario Roles de base de datos.sql

Permisos de sentencias A un usuario, rol definido por el usuario, y a public, puede concederse o denegarse permiso para ejecutar sentencias GRANT <Sentencia> TO <Usuario o Rol> DENY <Sentencia> TO <Usuario o Rol> REVOKE <Sentencia> FROM <Usuario o Rol> Obtener información: n: sp_helprotect

Lista de sentencias CREATE DATABASE CREATE DEFAULT CREATE FUNCTION CREATE PROCEDURE CREATE RULE CREATE TABLE CREATE VIEW BACKUP DATABASE BACKUP LOG

Demo Permisos de sentencias Administrador corporativo: T-SQL: Ver y modificar permisos de sentencias Permisos de sentencias.sql

Permisos específicos de objetos A un usuario, rol definido por el usuario, y a public, se les puede conceder o denegar permisos sobre objetos GRANT <Permiso> ON <Objeto> TO <Usu> DENY <Permiso> ON <Objeto> TO <Usu> REVOKE <Permiso> ON <Objeto> FROM <Usu> Obtener información: n: sp_helprotect

Objetos y permisos Objeto/permiso Select Insert Update Delete Execute References Tabla / Vista / función n en líneal x x x x x Función n tabular x x Procedimiento almacenado x Función n escalar x x

Permisos efectivos PE = C D C = O c + S c + R c D = O d + S d + R d PE: permisos efectivos C: permisos concedidos D: permisos denegados O c : permisos de objeto concedidos S c : permisos de sentencias concedidos R c : permisos concedidos de los roles a los que pertenezca O d : permisos de objeto denegados S d : permisos de sentencias denegados R d : permisos denegados de los roles a los que pertenezca

Demo Permisos de objetos: Administrador corporativo: T-SQL: Ver y modificar permisos de objetos Permisos de objeto.sql

Estrategias de seguridad

Uso de vistas y funciones en línea Dar permisos a vistas y funciones en líneal en lugar de a las propias tablas Ocultan la complejidad de la base de datos Permiten fácilmente f gestionar el acceso a nivel de columna.

Uso de procedimientos almacenados Algunos administradores sólo s permiten el acceso por medio de procedimientos almacenados porque: Impiden operaciones incorrectas asegurando las reglas de negocio. Permiten afinar la seguridad al mayor grado. Los usuarios no necesitan tener permiso para acceder a las tablas, sólo permiso de ejecución n de los procedimientos almacenados. Cuando un usuario A ejecuta un procedimiento almacenado B.P SQL Server no comprueba los permisos de acceso de A al los objetos de B. Sólo S comprueba los permisos de acceso de los objetos que no son de B. Esto es cierto sólo s para las sentencias DML, para las sentencias DDL siembre se comprueban los permisos.

Formas de controlar la seguridad Cuando se diseña a un sistema se tienen básicamenteb dos opciones para controlar la seguridad: Basarse en la seguridad de SQL Server. Ventajas: facilidad de auditoría Inconvenientes: los usuarios pueden acceder a la base de datos por otros medios y hacer de las suyas. La aplicación n cliente controla la seguridad: Ventajas: los usuarios sólo s pueden acceder a la base de datos por medio de la aplicación Inconvenientes: dificultad de auditoría

Seguridad basada en SQL Server Elegir entre dos tipos de autentificación: n: Windows (Recomendada) SQL Server

Configurar la seguridad basada en SQL Server con autentificación n Windows Crear un grupo de Windows por cada perfil de usuario Añadir los usuarios de Windows al grupo correspondiente Crear un inicio de sesión n en SQL Server por cada grupo de Windows correspondiente a un perfil Conceder los permisos necesarios a cada grupo de Windows.

Utilizar la seguridad basada en SQL Server con autentificación n Windows En una aplicación n ASP.NET Utilizar autentificación n Windows Configurarla para suplantación Desventaja: no connection pooling, no escalable En una aplicación n COM+ de servidor: Utilizar suplantación Desventaja: no connection pooling, no escalable En una aplicación n Windows: Nada

Configurar la seguridad basada en SQL Server con autentificación n estándar Crear un rol estándar por cada perfil de usuario Conceder los permisos necesarios a cada rol Crear un inicio de sesión n por cada usuario de la aplicación n y: Concederle acceso a la base de datos Añadirle al rol correspondiente a su perfil.

Utilizar la seguridad basada en SQL Server con autentificación n estándar En una aplicación n ASP.NET Autentificación n Forms Desventaja: no connection pooling En una aplicación n COM+ de servidor No sería a aplicable En una aplicación n Windows: Formulario de inicio de sesión.

Seguridad basada en aplicación Autentificación: n: Manejada por la propia aplicación Windows. Ej (ASP.NET, WinApp, COM+) Personalizado. Ej. (ASP.NET, WinApp) Basada en SQL Server (Windows o estándar) Conexión n a SQL Server Qué credenciales y qué tipo de autentificación Usuario y permisos: Un inicio de sesión n estándar Un inicio de sesión n usuario de windows Un rol de aplicación

Seguridad basada en la aplicación: ejemplos ASP.NET Autentificación n Forms y seguridad basada en roles. Utiliza un usuario estándar específico de la aplicación n que es db_ddladmin, db_datareader y db_datawriter en la base de datos. COM+: Seguridad basada en roles Conexión: n: autentificación n Windows Usuario: Identidad de la aplicación. Es db_datareader y db_datawriter en la base de datos. Aplicación n Windows: Hay un grupo de Windows por cada perfil de usuario Cada grupo tiene un inicio de sesión n en SQL Server, pero no tiene acceso a ninguna base de datos. Utiliza autentificación n Windows para conectarse con SQL Server Activa un rol de aplicación n justo después s de la conexión n que tiene permiso de ejecución n de todos los procedimientos almacenados. Utiliza seguridad basada en roles

Seguridad en SQL Server 2005

Separación n de esquema-usuario usuario Separación n de principales y esquemas Principal Cuenta de seguridad Se encuentran en la vista sys.database_principals Esquema Contenedor de objetos Se encuentran en sys.schemas Noción n de esquema predeterminado Es una propiedad del usuario o rol de aplicación Utilizado en la resolución n de nombres Están n en sys.database_principals Nuevas sentencias DDL para usuarios y esquemas CREATE/ALTER/DROP for USER, ROLE and SCHEMA La eliminación n de usuarios no requerie reescribir las aplicaciones

Demo Esquemas Schemas.sql

Contexto de ejecución SQL Server 2000 User 3 SQL Server 2005 User 3 Se comprueba que User3 tiene permiso de ejecución User2.Proc1 User1.Proc1 Se comprueba que User3 tiene permiso de ejecución Execute AS X User2.Proc1 Se comprueba que User3 tiene permiso de ejecución Se comprueban que User3 tiene permiso Select User1.T1 User1.T1 NO se comprueba que User3 tenga permiso User1.T1 Permiso select comprobado para X. No para user3 (si el esquema User2 tiene el mismo propietario que el esquema user1 entonces no se comprueba)

Contexto de ejecución n de módulosm Declarara contexto de ejecución n de módulosm Módulos: procedimientos, funciones, triggers No se necesita delegar en el encadenamiento de la propiedad para que sólo s se compruebe el permiso de ejecución Las reglas de encadenamiento de la propiedad se siguen aplicando Los permisos se comprueban para el contexto de ejecución n actual A diferencia del encadenamiento de propiedad, se aplica también n a las sentencias DDL Incluye ejecución n dinámica Se pueden ver en sys.sql_modules

Contexto de ejecución Execute AS CALLER Las sentencias se ejecutan con el contexto de, llamador immediato Funcionamiento predeterminado, similar a SQL Server 2000 Execute AS NombreUsuario Las sentencias se ejecutan como el usuario especificado Se requiere permiso de suplantación Execute AS SELF Las sentencias se ejecutan como el usuario que creó el módulom Se almacena el SID, no SELF Execute AS OWNER Las sentencias se ejecutan como el propietario del módulom Se requiere privilegio de suplantación n de propietario Cuando cambia el propietario también n cambia el contexto

Demo Contexto de ejecución Contexto ejecución.sql

Control de permisos granular Más permisos a varios niveles Server, Database, Schema, Object, Principal No se necesita pertenecer a un rol para realizar tareas Vistas del sistema Permisos de base de datos: sys.database_permissions Permisos de servidor: sys.server_permissions view

Esquema general de permisos La mayoría a de los objetos asegurables tienen los siguientes permisos CONTROL: como los permisos del propietario ALTER: permite cambiar las propiedades del objeto. Tambien permite CREATE/DROP/ALTER en los objetos contenidos ALTER ANY X : permite modificar cuanquier objeto de topo X Take Ownership: concede el permiso de obtener la propiedad de un objeto

Directivas de contraseñas Durante el inicio de sesión: Fuerza Expiración Bloqueo de cuentas Sigue la directiva local de contraseñas Implementación Nueva API en Windows Server 2003 Llamada durante la autentificación. n. En Win2K Server La función n de API no está disponible Sólo se soporta la complejidad de contraseñas nativa de SQL server

Seguridad del catálogo Las tablas del sistema están n implementadas como vistas Los metadatos son seguros de forma predeterminada Permisos mínimos m para public Seguridad a nivel de fila en las vistas del catálogo Se necesita tener algún n permiso sobre un objeto para verlo en una vista de catálogo SA puede verlo todo en el servidor DBO puede verlo todo en la base de datos Nuevo permiso para ver los metadatos VIEW DEFINITON Aplicable a nivel de objeto, esquema, base de datos y server

Principios de diseño o de la seguridad Seguro por diseño Código robusto y seguro Pruebas y análisis Seguro de forma predeterminada La configuración n predeterminada es un sistama seguro Minimiza la superficie de ataque Instalar solo los componentes necesarios Seguro en producción Principio de mínimos m privilegios Concecer los permisos mínimos m necesarios para trabajar Cuentas de servicio con pocos privilegios Automatización / Asistencia de mantenimiento de software Buenas herramientas para el análisis y la administración n de la seguridad

Demo Granularidad y seguridad de catálogo Granularidad y seguridad de catálogo.sql