Vous êtes sur la page 1sur 57

Seguridad SQL Server 7.

Agenda

Estructura de Seguridad Integracin Windows NT y Windows 2000 Modelo de Seguridad SQL Server 7.0 Implementacin del Modelo de Seguridad

Subsistema de Seguridad

Existen dos requisitos Autentificacin

Quin es usted?

Autorizacin

Qu se le permite hacer?

Autentificacin

SQL Server debe verificar su identidad Dos opciones: Windows NT o Autentificacin de SQL Server Windows NT es el mecanismo preferido

Respalda el sofisticado soporte administrativo y de password No es tan sofisticado y no ha sido mejorado

Autentificacin del SQL Server

Autorizacin

Una vez que sabemos quien es usted, Qu se le permite hacer? Basada en derechos que le son asignados a travs de un administrador de seguridad El sistema es seguro por predeterminacin

Agenda

Estructura de Seguridad Integracin Windows NT and Windows 2000 Modelo de Seguridad SQL Server 7.0 Implementacin del Modelo de Seguridad

Integracin de Windows NT

Soporte total para Windows NT 4.0 y seguridad Windows 2000 Soporte del modelo de permisos Windows NT Ms informacin a lo largo de esta presentacin

Autentificacin y Autorizacin para Windows NT

Autentificacin utilizando credenciales de dominio

La cuenta del usuario est definida en el Active Directory o en la base de datos local SAM

Autorizacin basada en membresa de grupo

Administracin centralizada de derechos de acceso

Seguridad distribuida enlazada al Modelo de Seguridad Windows NT


Listas de control de acceso (ACLs) basadas en objetos Los servicios de red utilizan personificacin

Un Modelo de Seguridad
Protocolos de Seguridad Mltiples

Protocolos clave compartidos


Autentificacin Windows NTLM Windows NT 4.0 y Windows 2000 Kerberos V5 para redes Empresariales Solamente Windows 2000 Secure Sockets Layer (SSL) / Transport Layer Security (TLS) Seguridad IP

Protocolos de certificacin de llave pblica


Mltiples formas de credenciales en el Active Directory

Agenda

Estructura de Seguridad Integracin Windows NT y Windows 2000 Modelo de Seguridad SQL Server 7.0 Implementacin del Modelo de Seguridad

Modelo de Seguridad SQL Server


Solicitud de Coneccin de Red (IPC$ en NT)

Conectar a la Computadora con SQL Server


Solicitud de Autentificacin de Conexin al SQL Server

Establecer Credenciales de Conexin


Cambiar a una base de datos y autorizar el acceso

Establecer un Contexto de Base de Datos


Intentar realizar una accin

Verificar permisos para todas las acciones dentro de una base de datos

Modelo de Seguridad SQL Server


Solicitud de Coneccin de Red (IPC$ en NT)

Conectar a la Computadora con SQL Server


Solicitud de Autentificacin de Conexin al SQL Server

Establecer Credenciales de Conexin


Cambiar a una base de datos y autorizar el acceso

Establecer un Contexto de Base de Datos


Intentar realizar una accin

Verificar permisos para todas las acciones dentro de una base de datos

Conexin al Servidor SQL

Si utiliza la Bilblioteca de Red Named Pipes, Windows NT requerir de una conexin a un recurso administrativo IPC$ para conectarse a la computadora La Bilblioteca de Red Multiprotocolo (RPC) tambin autentifica la conexin Si no existe cuenta de Windows NT, el acceso ser negado

A menos que el Husped est habilitado No es recomendable

Modelo de Seguridad SQL Server


Solicitud de Coneccin de Red (IPC$ en NT)

Conectar a la Computadora con SQL Server


Solicitud de Autentificacin de Conexin al SQL Server

Establecer Credenciales de Conexin


Cambiar a una base de datos y autorizar el acceso

Establecer un Contexto de Base de Datos


Intentar realizar una accin

Verificar permisos para todas las acciones dentro de una base de datos

Establecimiento de Credenciales de Conexin

Verificar la identidad del usuario y despus el derecho de conexin al SQL Server Esta decisin esta basada en las entradas en el master tabla sysxlogins Existen dos modelos: Modo de autentificacin Windows NT/2000 Acepta slo conexiones verificadas de Windows NT Mixto Autentificacin Windows NT/2000 Autentificacin SQL Server

Establecimiento de Credenciales de Conexin


Detalles - Conexiones Integradas de Windows

No es necesario otorgar explictamente el acceso individual de los usuarios Windows NT al SQL Server Los usuarios pueden acceder al SQL Server va una membresa de grupo Windows NT La membresa de grupo Windows NT es reconocida en el tiempo de conexin del SQL Server Utilizada durante la conexin No se actualiza hasta la siguiente conexin al SQL Server Cada cuenta/grupo en Windows NT tiene una entrada de tabla sysxlogins - basada en el SID de la cuenta (Identificador de Seguridad)

Establecimiento de Credenciales de Conexin


Detalles - Conexiones Integradas de Windows

Cualquier Negacin aplicable de entrada evitar la conexin

La Negacin anular siempre cualquier otra entrada

La autentificacin Windows NT est disponible en todas la Bilbliotecas de Red SQL Server utiliza la interfaz SSPI para Windows NT

Permite que el SQL Server aproveche las nuevas caractersticas de seguridad de Windows 2000 sin alterar el producto

Establecimiento de Credenciales de Conexin


Detalles - Conexiones Integradas de SQL Server

Cada conexin de SQL Server tiene una entrada en la tabla sysxlogins en el master basada en un SID generado por SQL Server (GUID) No se expiden membresias de grupo Las entradas pueden ser otorgadas o negadas

Fixed Server Roles


Brinda derechos a una entrada en todo el sistema No puede removerse o modificarse Divide las capacidades administrativas de SQL Server

No es necesario que sysadmin haga todo el trabajo administrativo! Sysadmin (abarca todos las dems finciones fijas del servidor) Serveradmin Setupadmin Securityadmin Processadmin Dbcreator Diskadmin

Funciones fijas del servidor :

Modelo de Seguridad SQL Server


Solicitud de Coneccin de Red (IPC$ en NT)

Conectar a la Computadora con SQL Server


Solicitud de Autentificacin de Conexin al SQL Server

Establecer Credenciales de Conexin


Cambiar a una base de datos y autorizar el acceso

Establecer un Contexto de Base de Datos


Intentar realizar una accin

Verificar permisos para todas las acciones dentro de una base de datos

Usuarios de Base de Datos SQL Server


Debe existir para tener acceso a la base de datos Puede o no cruzar la informacin directamente a las conexiones SQL Server La informacin puede cruzarse a la conexin SQL Server, a un usuario o a un grupo de Windows NT Todos los derechos de la base de datos son para el usuario, no para la conexin

DBO y los Usuarios Huspedes

DBO es el Propietario de la Base de Datos Cruza la informacin a la nica entrada que posee la base de datos Los miembros de la funcin db_owner role son iguales El husped es eso, un husped Una forma predeterminada de acceder a la base de datos No est habilitada por predeterminacin Excepciones : Master, tempdb, msdb, pubs, bases de datos muestra (pubs y northwind) Existir en las bases de datos nuevas, si es agregada a la base de datos modelo La entrada existe pero no est habilitada (hasdbaccess = 0)

Funciones Flexibles de la Base de Datos

Qu son?

Un conjunto de funciones o usuarios SQL Server o Windows NT con los mismos permisos, creado por el usuario Son propiedad SQL Server, y ste las administra Facilitan al administrador del Servidor /BD la configuracin de permisos de grupos y esquemas Un usuario de Windows NT Un grupo de Windows NT Un usuario o funcin de SQL Server

Pueden ser acopladas

La membresa de funcin puede asignarse a:

Uso de Grupos y Funciones de Windows NT

Las funciones son la base de los permisos El uso de los grupos de Windows NT no requiere administracin doble de membresas SQL Server no distingue entre grupos y funciones en el nivel de permisos

No es necesario crear funciones que dupliquen su estructura de grupo de Windows NT Cuando sea posible deber asignar permisos directamente a los usuarios de Windows NT

Grupos de Windows NT y Funciones de SQL Server


Asigne permisos utilizando grupos y usuarios de Windows NT Utilice las funciones para unir todo
dom2\joe dom\nancy dom\sue dom\project2 dom\tom dom2\mary Ventas

Project2_ users

Administrador

dom\users

dom\sales

dom\project1

Funciones Fijas de Base de Datos


Funciones especficas de base de datos (principalmente para propsitos administrativos) No se pueden remover o modificar Nueve Funciones Fijas de Base de Datos:

db_owner (abarca todas las funciones fijas DB) db_accessadmin db_securityadmin db_ddladmin db_backupoperator db_datareader db_datawriter db_denydatareader db_denydatawriter

La Funcin Pblico

Publico es el Grupo de Todos

En otras palabras, todos los usuarios estn siempre en pblico, y no se pueden remover Atajo para otorgar permisos a todos Es posible utilizar los permisos pblicos an cuando una funcin de aplicacin est habilitada

Propiedad de Objecto

Los usuarios, grupos y funciones pueden poseer objetos Sintaxis


CREATE <object>[database.[owner].]object_name..

Propietario predeterminado: Usuario Propietario explcito: Cualquier grupo o funcin a la que est asignado el usuario

Permite compartir los objetos dentro de un grupo o funcin

Cualquier miembro del grupo o funcin tiene permisos de propiedad de objetos

Puede modificarse con sp_changeobjectowner

Funciones Implcitas del Propietario de un Objeto

ObjectOwner no es una funcin especfica en SQL Server


La informacin del propietario de un objeto se almacena en Sysobjects No existe entrada para sta funcin en Sysusers Poseer tablas, ndices, vistas, omisiones, disparadores, reglas y procedimientos Otorgar permisos a otros usuarios/grupos/funciones para utilizar objetos de su propiedad Cuenta con un juego completo de permisos del objeto

El propietario de un objeto puede:


Alias

Una funcin de SQL Server 4.x/6.x Los Alias slo tienen soporte de versiones anteriores - Sern eliminados en futuras versiones! Los Alias son cubiertos por funciones

Excepcin: Alias de DBO - Ser necesario calificar al propietario del objeto en su creacin cuando utilice la funcin dbowner p. ej., crear tabla dbo.table (c1 int no es nulo)

Funciones de Aplicacin

Qu son? Cmo se utilizan? Su relacin con las funciones MTS/COM+ Escenarios de Uso

Funciones de la Aplicacin

Le permite restringir los permisos y el acceso a los objetos por medio de una aplicacin especfica Una vez habilitado, suspende todos los permisos del usuario mientras dure la conexin Puede ser protegido con un password El proceso de encriptacin esta habilitado para el cliente El perfilador no mostrar el password Se definen solamente al nivel de base de datos No es posible asignar membresas a priori La actividad del usuario es auditada durante su conexin

Funciones de la Aplicacin
Seguridad de la Aplicacin

Ejemplo - aplicacin de nmina Los usuarios de la nmina slo deben actualizar el acceso a la tabla de salarios cuando usen la aplicacin de nmina La aplicacin de nmina validar el usuario,y slo habilitar la funcin PayUser de la aplicacin despus de conectar al usuario a la BD El usuario slo tendr los permisos asociados con PayUser El usuario ser auditado durante su conexin

Funciones de la Aplicacin
Utilizada con MTS/COM+

Las funciones de la aplicacin SQL Server brindan una equivalencia lgica a las funciones MTS

Ventaja:

Crean una Funcin de la Aplicacin a SQL Server para cada funcin MTS Role usada en la aplicacin Agrega ambos tipos de cuentas a nuevas funciones SQL Server: La(s)cuenta(s) dedicada MTS para transacciones discretas La(s)cuenta(s) individuales de usuario/grupo Windows NT conectadas directamente a SQL Server para operaciones ad hoc OTORGA/REVOCA/NIEGA permisos para las Funciones SQL Server de la Aplicacin

Unifica la seguridad de la base de datos para los componentes MTS y operaciones ad hoc El usuario conectado a SQL Server por medio de MTS no ser auditado bajo su propia cuenta Soporte de Delegacin Windows NT 5.0 en COM+ y SQL Server Shiloh

Deventaja:

Solucin:

Funciones de la Aplicacin
Opcin: Trusted MTS/COM+
Aplicacin

Acceso a Funcin MTS


Rodrguez/Jos Conexin MTS, Habilita la Funcin Payroll de MTS, y usa Component/Method

Acceso DB Ad hoc Conexin SQL


Jos Rodrguez

MTS Component/Method

sp_SetAppRole Nomina
Conexin SQL Rodrguez/MTS sp_SetAppRole Nmina

SQL Server

Funciones de la Aplicacin
Option: Trusted MTS/COM+

Si confa en sus componentes MTS/COM+, Y son su UNICO mtodo de acceso a la base de datos

Debe restringir el acceso a la base de datos a solo la cuenta de servicio de los componentes MTS/COM+ Conctese a SQL Server utilizando la Seguridad Integrada, y cambie a la base de datos apropiada Habilita la funcin de la aplicacin para los componentes MTS/COM+

No es necesario el password en la funcin de la aplicacin

Caveat: La auditora se lleva a cabo slo en la cuenta de servicio (Es necesario que usted mismo la desarolle)

Modelo de Seguridad SQL Server


Solicitud de Coneccin de Red (IPC$ en NT)

Conectar a la Computadora con SQL Server


Solicitud de Autentificacin de Conexin al SQL Server

Establecer Credenciales de Conexin


Cambiar a una base de datos y autorizar el acceso

Establecer un Contexto de Base de Datos


Intentar realizar una accin

Verificar permisos para todas las acciones dentro de una base de datos

Permisos
Instruccin contra Objeto

Los permisos de instruccin le permiten ejecutar una instruccin- i.e., Crear tabla, crear vista view, etc. Los permisos objeto le permiten llevar a cabo una accin sobre un objeto en particular:

Seleccionar, Insertar, Actualizar, Borrar, Ejecutar, Referencias El hecho de que no existan permisos, no significa que puede utilizar un objeto

Permisos
Otorgar/revocar/negar permisos

Verbos del rbol de permisos en SQL Server:


Otorgar le da un derecho Negar explicitamente niega un derecho Revocar elimina una negacin u orotgamiento un existente Verifique los permisos con la funcin Permisos ()
OTORGAR

REVOCAR[NEGAR]

REVOCAR

NEGAR

+
OTORGAR NEGAR

Permisos, Grupos, Funciones


Implementacin

SysMembers - Membresa de Funcin Sysusers - Cuentas del Usuario Syspermissions - permisos Sysobjects - propietarios de objetos SysColumns - para permisos a nivel Columna
SysUsers
Uid SID Name Status Roles CreateDate UpdateDate AltUID Password Suid GID Environ

SysMembers
MemberUId GroupUId

SysPermissions
Id Grantee Grantor Actadd Actmod Seladd Selmod Updadd Updmod Refadd Refmod

SysObjects
ObjectId OwnerId

ObjectName

SysColumns
ObjectId

Colid ObjectName

Agenda

Estructura de Seguridad Integracin Windows NT y Windows 2000 Modelo de Seguridad SQL Server 7.0 Implementacin del Modelo de Seguridad

Implementacin del Modelo


Funciones de desarrollo

Para determinar la membresa de funcin


is_srvrolemember(funcin, conexin) is_member(funcin) suser_sname(SID) user_name(id) o simplemente usuario Seleccione is_member(sales), suser_sname(), usuario 0 Rodrguez\rwaymi dbo

Para determinar el contexto del usuario


Ejemplo:

Implementacin del Modelo


Desarrollo de la administracin de la base de datos database

En ambientes sencillos hay poca o nula sobrecarga de administracin Ejemplo de usuario individual

Aceptar por predeterminacin (local admins = Sysadmin) o use SA Otortgar SysAdmin al grupo de desarrolladores de Windows NT Hacer un SysAdmin a DBA Hacer el grupo de desarrolladores de Windows NT DB_Owner

Multi-usuario sin seguridad

Multi-user con seguridad ligera


Implementacin del Modelo


Administracin de la Produccin del Servidor

Controle los usuarios/grupos de Windows NT que tienen acceso al servidor invocando:

sp_grantlogin sp_revokelogin sp_denylogin

Cuando sea posible, aproveche sus grupos de dominio existentes Asigne membresias de funciones a lo largo de todo el servidor para usuarios administrativos

sp_addsrvrolemember, sp_dropsrvrolemember

Implementacin del Modelo


Administracin de la Produccin de la Base de Datos

Controle los usuarios/grupos de Windows NT que tienen acceso al servidor invocando: sp_grantdbaccess sp_revokedbaccess De nuevo, cuando sea posible, aproveche sus grupos de dominio Asigne membresias de funciones fixeddatabase de acuerdo a su necesidad sp_addrolemember, sp_droprolemember

Implementacin del Modelo


Administracin de la Produccin de la Base de Datos

Cree funciones flexibles de base de datos de acuerdo a su necesidad Asigne usuarios a sus funciones flexibles de base de datos

sp_addrolemember, sp_droprolemember

Cree funciones de aplicacinde acuerdo a sus necesidades

sp_addapprole

Otorge/Niege permisos a las funciones flexibles y/o de aplicacin Slo otorge/niege permisos directamente a un usuario individual cuando sea nacesario

Implementacin del Modelo


Administracin de la Produccin de la Base de Datos

Hgalo fcilmente

Todos los objetos en una base de datos son propiedad de dbo Asi evita Cadenas de Propiedad Rotas Mejora la seguridad Utilice los procedimientos de Vistas y Almacenados para enmascarar las tablas

Evite los permisos a nivel de Columna, cuando sea posible

Implementacin del Modelo


Reguladores de Permisos

La implementacin de of fixed-server roles requiere de una entrada de conexin para cada miembro, explicitamente agregado a una funcin

P.ej., si rodrig\ventas es un inicio de sesin, pero usted ejecuta sp_addsrvrolemember [redmond\joe],dbcreator, se agrega un nuevo inicio de sesin a [redmond\joe] con bandera hasaccess en 0 (visible desde el vista syslogins)

La implementacin de of Sysobjects y Syspermissions requiere un UID para cada regulador de propietario/permiso de objeto en una base de datos Ejemplo en el siguiente slide

Implementacin del Modelo


Reguladores de Permisos

Ejemplo de Base de Datos:


Rodrguez \Jos en el grupo Rodrguez\ventas Rodrguez\ventas es un usuario en la base de datos PUBS Jos se conecta a PUBS va una membresa de grupo

Jos crea tabla [Rodrguez \ Jos ].MyTable Se agrega un nuevo usuario [Rodrguez \ Jos ] a la tabla sysusers para rastrear la propiedad Pero la bandera hasdbaccess est en 0 Si revoca la membresa de Jos en el grupo de ventas, ya no tendr acceso a la base de datos o acceso a su tabla, (aunque la tabla todava exista) Ntese que se puede reasignar el propietario de un objeto

Implementacin del Modelo


Auditora

Use el Perfilador SQL Server Profiler para auditar la actividad:

Intentos de conexin, conexiones y desconexiones TSQL seleccin, inserte, y actualice, borrar Ejecucin de procedimientos almacenados RPC/TSQL batch completes Objeto: creacin/borrado, abierto/cerrado

Se agregarn nuevas funciones de auditora en SP2

Implementacin del Modelo


SQL Server para Escritorio

Ideal para el usauario individual de esrcitorio o bases de datos multi-usuarios ligeras (5 o menos) Administracin Simple

Crear un (os) usuario(s) SQL Server Crear fiunciones apropiadas y asigne permisos Otorge funciones a los usuarios SQL Server

La autentificacin SQL Server es la nica opcin en Windows 95/Windows 98 Utilice una Estacin de Trabajo Windows NT si se requiere de seguridad

Agenda

Estructura de Seguridad Integracin Windows NT y Windows 2000 Modelo de Seguridad SQL Server 7.0 Implementacin del Modelo de Seguridad

Resumen

Integracin total con Windows NT/2000 Security Completo soporte de usuarios, grupos, y funciones Funciones de aplicacin para arquitecturas de tercer nivel Granulidad flexible de permisos y funciones de sistemas Administracin simple y slida

Informacin Relacionada

Libros SQL Server en lnea http://www.microsoft.com/sql

Documentos estratgicos e informacin general SQL Server Prxima disponibilidad de documentos estratgicos de seguridad
elementos/actualizaciones de seguridad general

http://www.microsoft.com/security

http://support.microsoft.com/ support/sql

Pginas de soporte de SQL Server

Preguntas y Respuestas

Curriculum Oficial Microsoft

Curriculum tcnico Instructor-led, hands-on desarrollado por Microsoft

Ayuda a los profesionales de la TI a obtener experiencia con los productos de Microsoft Disponible en ms de 1,900 Centros Certificados de Educacin Tcnica de Microsoft en todo el mundo

Disponible en TechEd Pabelln de Productos de Tech Ed : CD MOC Sampler Gratis Curriculum que aplica para esta sesin : 832b