Seguridad en SQL

57
Seguridad SQL Server Seguridad SQL Server 7.0 7.0

Transcript of Seguridad en SQL

Page 1: Seguridad en SQL

Seguridad SQL ServerSeguridad SQL Server™™ 7.0 7.0

Page 2: Seguridad en SQL

AgendaAgenda

Estructura de Seguridad Estructura de Seguridad Integración Windows NTIntegración Windows NT®® y y

WindowsWindows®® 2000 2000 Modelo de Seguridad SQL Server 7.0Modelo de Seguridad SQL Server 7.0 Implementación del Modelo de Implementación del Modelo de

SeguridadSeguridad

Page 3: Seguridad en SQL

Subsistema de SeguridadSubsistema de Seguridad

Existen dos requisitosExisten dos requisitos AutentificaciónAutentificación

¿Quién es usted?¿Quién es usted?

AutorizaciónAutorización ¿Qué se le permite hacer? ¿Qué se le permite hacer?

Page 4: Seguridad en SQL

AutentificaciónAutentificación

SQL Server debe verificar su identidadSQL Server debe verificar su identidad Dos opciones: Windows NT o Dos opciones: Windows NT o

Autentificación de SQL Server Autentificación de SQL Server Windows NT es el mecanismo preferidoWindows NT es el mecanismo preferido

Respalda el sofisticado soporte Respalda el sofisticado soporte administrativo y de administrativo y de passwordpassword

Autentificación del SQL Server Autentificación del SQL Server No es tan sofisticado y no ha sido No es tan sofisticado y no ha sido

mejoradomejorado

Page 5: Seguridad en SQL

AutorizaciónAutorización

Una vez que sabemos quien es usted, Una vez que sabemos quien es usted, ¿Qué se le permite hacer?¿Qué se le permite hacer?

Basada en derechos que le son Basada en derechos que le son asignados a través de un asignados a través de un administrador de seguridad administrador de seguridad

El sistema es seguro por El sistema es seguro por predeterminaciónpredeterminación

Page 6: Seguridad en SQL

AgendaAgenda

Estructura de SeguridadEstructura de Seguridad Integración Windows NT and Integración Windows NT and

Windows 2000Windows 2000 Modelo de Seguridad SQL Server 7.0Modelo de Seguridad SQL Server 7.0 Implementación del Modelo de Implementación del Modelo de

SeguridadSeguridad

Page 7: Seguridad en SQL

Integración de Windows NTIntegración de Windows NT

Soporte total para Windows NT 4.0 Soporte total para Windows NT 4.0 y seguridad Windows 2000y seguridad Windows 2000

Soporte del modelo de permisos Soporte del modelo de permisos Windows NTWindows NT

Más información a lo largo de esta Más información a lo largo de esta presentaciónpresentación

Page 8: Seguridad en SQL

Autentificación y Autorización Autentificación y Autorización para Windows NTpara Windows NT Autentificación utilizando credenciales de Autentificación utilizando credenciales de

dominio dominio La cuenta del usuario está definida en el Active La cuenta del usuario está definida en el Active

DirectoryDirectory™™ o en la base de datos local SAM o en la base de datos local SAM Autorización basada en membresía de grupoAutorización basada en membresía de grupo

Administración centralizada de derechos de Administración centralizada de derechos de acceso acceso

Seguridad distribuida enlazada al Modelo de Seguridad distribuida enlazada al Modelo de Seguridad Windows NT Seguridad Windows NT Listas de control de acceso (ACLs) basadas en Listas de control de acceso (ACLs) basadas en

objetos objetos Los servicios de red utilizan personificación Los servicios de red utilizan personificación

Page 9: Seguridad en SQL

Un Modelo de Seguridad Un Modelo de Seguridad ProtocolosProtocolos de Seguridadde Seguridad MúltiplesMúltiples

Protocolos clave compartidosProtocolos clave compartidos Autentificación Windows NTLM Autentificación Windows NTLM

Windows NT 4.0 y Windows 2000Windows NT 4.0 y Windows 2000 Kerberos V5 para redes Empresariales Kerberos V5 para redes Empresariales

Solamente Windows 2000 Solamente Windows 2000 Protocolos de certificación de llave públicaProtocolos de certificación de llave pública

Secure Sockets Layer (SSL) / Secure Sockets Layer (SSL) / Transport Layer Security (TLS)Transport Layer Security (TLS)

Seguridad IPSeguridad IP Múltiples formas de credenciales en elMúltiples formas de credenciales en el

Active Directory Active Directory

Page 10: Seguridad en SQL

AgendaAgenda

Estructura de SeguridadEstructura de Seguridad Integración Windows NT y Integración Windows NT y

Windows 2000Windows 2000 Modelo de Seguridad SQL Server 7.0Modelo de Seguridad SQL Server 7.0 Implementación del Modelo de Implementación del Modelo de

SeguridadSeguridad

Page 11: Seguridad en SQL

Modelo de Seguridad SQL ServerModelo de Seguridad SQL Server

Establecer Credenciales de ConexiónEstablecer Credenciales de Conexión

Conectar a la Computadora con SQL Server Conectar a la Computadora con SQL Server

Establecer un Contexto de Base de DatosEstablecer un Contexto de Base de Datos

Verificar permisos para todas lasVerificar permisos para todas lasacciones dentro de una base de datosacciones dentro de una base de datos

Solicitud de Conección de Red (IPC$ en NT)Solicitud de Conección de Red (IPC$ en NT)

Solicitud de Autentificación de Conexión al SQL ServerSolicitud de Autentificación de Conexión al SQL Server

Cambiar a una base de datos y autorizar el accesoCambiar a una base de datos y autorizar el acceso

Intentar realizar una acciónIntentar realizar una acción

Page 12: Seguridad en SQL

Modelo de Seguridad SQL ServerModelo de Seguridad SQL Server

Establecer Credenciales de ConexiónEstablecer Credenciales de Conexión

Conectar a la Computadora con SQL ServerConectar a la Computadora con SQL Server

Establecer un Contexto de Base de DatosEstablecer un Contexto de Base de Datos

Verificar permisos para todas lasVerificar permisos para todas lasacciones dentro de una base de datosacciones dentro de una base de datos

Solicitud de Conección de Red (IPC$ en NT)Solicitud de Conección de Red (IPC$ en NT)

Solicitud de Autentificación de Conexión al SQL ServerSolicitud de Autentificación de Conexión al SQL Server

Cambiar a una base de datos y autorizar el accesoCambiar a una base de datos y autorizar el acceso

Intentar realizar una acciónIntentar realizar una acción

Page 13: Seguridad en SQL

Conexión al Servidor SQLConexión al Servidor SQL

Si utiliza la Bilblioteca de Red Si utiliza la Bilblioteca de Red Named PipesNamed Pipes, , Windows NT requerirá de una conexión a un Windows NT requerirá de una conexión a un recurso administrativo IPC$ para conectarse recurso administrativo IPC$ para conectarse a la computadoraa la computadora

La Bilblioteca de Red Multiprotocolo (RPC)La Bilblioteca de Red Multiprotocolo (RPC) también autentifica la conexióntambién autentifica la conexión

Si no existe cuenta de Windows NT, el Si no existe cuenta de Windows NT, el acceso será negadoacceso será negado A menos que el Huésped esté habilitadoA menos que el Huésped esté habilitado

No es recomendableNo es recomendable

Page 14: Seguridad en SQL

Modelo de Seguridad SQL ServerModelo de Seguridad SQL Server

Establecer Credenciales de ConexiónEstablecer Credenciales de Conexión

Conectar a la Computadora con SQL ServerConectar a la Computadora con SQL Server

Establecer un Contexto de Base de DatosEstablecer un Contexto de Base de Datos

Verificar permisos para todas lasVerificar permisos para todas lasacciones dentro de una base de datosacciones dentro de una base de datos

Solicitud de Conección de Red (IPC$ en NT)Solicitud de Conección de Red (IPC$ en NT)

Solicitud de Autentificación de Conexión al SQL ServerSolicitud de Autentificación de Conexión al SQL Server

Cambiar a una base de datos y autorizar el accesoCambiar a una base de datos y autorizar el acceso

Intentar realizar una acciónIntentar realizar una acción

Page 15: Seguridad en SQL

Establecimiento de Credenciales Establecimiento de Credenciales de Conexiónde Conexión Verificar la identidad del usuario y después Verificar la identidad del usuario y después

el derecho de conexión al SQL Serverel derecho de conexión al SQL Server Esta decisión esta basada en las Esta decisión esta basada en las

entradas en el master … tabla sysxloginsentradas en el master … tabla sysxlogins Existen dos modelos:Existen dos modelos:

Modo de autentificación Windows Modo de autentificación Windows NT/2000NT/2000 Acepta sólo conexiones verificadas de Acepta sólo conexiones verificadas de

Windows NT Windows NT MixtoMixto

Autentificación Windows NT/2000Autentificación Windows NT/2000 Autentificación SQL ServerAutentificación SQL Server

Page 16: Seguridad en SQL

Establecimiento de Credenciales Establecimiento de Credenciales de Conexiónde Conexión Detalles - Conexiones Integradas de WindowsDetalles - Conexiones Integradas de Windows

No es necesario otorgar explicítamente el acceso No es necesario otorgar explicítamente el acceso individual de los usuarios Windows NT al SQL Serverindividual de los usuarios Windows NT al SQL Server Los usuarios pueden acceder al SQL Server vía una Los usuarios pueden acceder al SQL Server vía una

membresía de grupo Windows NTmembresía de grupo Windows NT La membresía de grupo Windows NT es reconocida en el La membresía de grupo Windows NT es reconocida en el

tiempo de conexión del SQL Servertiempo de conexión del SQL Server Utilizada durante la conexión Utilizada durante la conexión No se actualiza hasta la siguiente conexión al SQL No se actualiza hasta la siguiente conexión al SQL

ServerServer Cada cuenta/grupo en Windows NT tiene una entrada de Cada cuenta/grupo en Windows NT tiene una entrada de

tabla sysxlogins - basada en el SID de la cuenta tabla sysxlogins - basada en el SID de la cuenta (Identificador de Seguridad)(Identificador de Seguridad)

Page 17: Seguridad en SQL

Establecimiento de Credenciales Establecimiento de Credenciales de Conexiónde Conexión Detalles - Conexiones Integradas de WindowsDetalles - Conexiones Integradas de Windows

Cualquier Negación aplicable de entrada Cualquier Negación aplicable de entrada evitará la conexiónevitará la conexión La Negación anulará siempre cualquier otra La Negación anulará siempre cualquier otra

entradaentrada

La autentificación Windows NT está La autentificación Windows NT está disponible en todas la Bilbliotecas de Reddisponible en todas la Bilbliotecas de Red

SQL Server utiliza la interfaz SSPI para SQL Server utiliza la interfaz SSPI para Windows NTWindows NT Permite que el SQL Server aproveche las nuevas Permite que el SQL Server aproveche las nuevas

características de seguridad de Windows 2000 características de seguridad de Windows 2000 sin alterar el producto sin alterar el producto

Page 18: Seguridad en SQL

Establecimiento de Credenciales Establecimiento de Credenciales de Conexiónde Conexión Detalles - Conexiones Integradas de SQL Detalles - Conexiones Integradas de SQL ServerServer

Cada conexión de SQL Server tiene Cada conexión de SQL Server tiene una entrada en la tabla sysxlogins en una entrada en la tabla sysxlogins en el master basada en un SID generado el master basada en un SID generado por SQL Server (GUID) por SQL Server (GUID)

No se expiden membresias de grupoNo se expiden membresias de grupo Las entradas pueden ser otorgadas o Las entradas pueden ser otorgadas o

negadasnegadas

Page 19: Seguridad en SQL

Fixed Server RolesFixed Server Roles Brinda derechos a una entrada en todo el sistemaBrinda derechos a una entrada en todo el sistema No puede removerse o modificarseNo puede removerse o modificarse Divide las capacidades administrativasDivide las capacidades administrativas dede SQL SQL

ServerServer ¡No es necesario que sysadmin haga todo el trabajo ¡No es necesario que sysadmin haga todo el trabajo

administrativo!administrativo! Funciones fijas del servidorFunciones fijas del servidor ::

Sysadmin (abarca todos las demás finciones fijas del Sysadmin (abarca todos las demás finciones fijas del servidor)servidor) ServeradminServeradmin SetupadminSetupadmin SecurityadminSecurityadmin ProcessadminProcessadmin DbcreatorDbcreator DiskadminDiskadmin

Page 20: Seguridad en SQL

Modelo de Seguridad SQL ServerModelo de Seguridad SQL Server

Establecer Credenciales de ConexiónEstablecer Credenciales de Conexión

Conectar a la Computadora con SQL ServerConectar a la Computadora con SQL Server

Establecer un Contexto de Base de DatosEstablecer un Contexto de Base de Datos

Verificar permisos para todas lasVerificar permisos para todas lasacciones dentro de una base de datosacciones dentro de una base de datos

Solicitud de Conección de Red (IPC$ en NT)Solicitud de Conección de Red (IPC$ en NT)

Solicitud de Autentificación de Conexión al SQL ServerSolicitud de Autentificación de Conexión al SQL Server

Cambiar a una base de datos y autorizar el accesoCambiar a una base de datos y autorizar el acceso

Intentar realizar una acciónIntentar realizar una acción

Page 21: Seguridad en SQL

Usuarios de Base de Datos Usuarios de Base de Datos SQL ServerSQL Server Debe existir para tener acceso a la base Debe existir para tener acceso a la base

de datosde datos Puede o no cruzar la información Puede o no cruzar la información

directamente a las conexiones SQL directamente a las conexiones SQL ServerServer

La información puede cruzarse a la La información puede cruzarse a la conexión SQL Server, a un usuario o a conexión SQL Server, a un usuario o a un grupo de Windows NT un grupo de Windows NT

Todos los derechos de la base de datos Todos los derechos de la base de datos son para el usuario, no para la conexiónson para el usuario, no para la conexión

Page 22: Seguridad en SQL

DBO y los Usuarios HuéspedesDBO y los Usuarios Huéspedes

DBO es el Propietario de la Base de DatosDBO es el Propietario de la Base de Datos Cruza la información a la única entrada que posee la Cruza la información a la única entrada que posee la

base de datos base de datos Los miembros de la función db_owner role son igualesLos miembros de la función db_owner role son iguales

El huésped es eso, un huéspedEl huésped es eso, un huésped Una forma predeterminada de acceder a la base de Una forma predeterminada de acceder a la base de

datosdatos No está habilitada por predeterminación No está habilitada por predeterminación

Excepciones : Master, tempdb, msdb, pubs, bases de Excepciones : Master, tempdb, msdb, pubs, bases de datos muestra (pubs y northwind)datos muestra (pubs y northwind)

Existirá en las bases de datos nuevas, si es agregada a Existirá en las bases de datos nuevas, si es agregada a la base de datos modelo la base de datos modelo

La entrada existe pero no está habilitada La entrada existe pero no está habilitada (hasdbaccess = 0)(hasdbaccess = 0)

Page 23: Seguridad en SQL

Funciones Flexibles de la Funciones Flexibles de la Base de DatosBase de Datos ¿Qué son? ¿Qué son?

Un conjunto de funciones o usuarios SQL Server Un conjunto de funciones o usuarios SQL Server o Windows NT con los mismos permisos, creado o Windows NT con los mismos permisos, creado por el usuario por el usuario

Son propiedad SQL Server, y éste las administraSon propiedad SQL Server, y éste las administra

Pueden ser acopladasPueden ser acopladas Facilitan al administrador del Servidor /BD la Facilitan al administrador del Servidor /BD la

configuración de permisos de grupos y esquemasconfiguración de permisos de grupos y esquemas

La membresía de función puede asignarse a:La membresía de función puede asignarse a: Un usuario de Windows NTUn usuario de Windows NT Un grupo de Windows NTUn grupo de Windows NT Un usuario o función de SQL ServerUn usuario o función de SQL Server

Page 24: Seguridad en SQL

Uso de Grupos y Uso de Grupos y Funciones de Windows NT Funciones de Windows NT Las funciones son la base de los permisosLas funciones son la base de los permisos El uso de los grupos de Windows NT no El uso de los grupos de Windows NT no

requiere administración doble de requiere administración doble de membresíasmembresías

SQL Server no distingue entre grupos y SQL Server no distingue entre grupos y funciones en el nivel de permisosfunciones en el nivel de permisos No es necesario crear funciones que dupliquen No es necesario crear funciones que dupliquen

su estructura de grupo de Windows NTsu estructura de grupo de Windows NT Cuando sea posible deberá asignar permisos Cuando sea posible deberá asignar permisos

directamente a los usuarios de Windows NTdirectamente a los usuarios de Windows NT

Page 25: Seguridad en SQL

dom\project1dom\project1

dom\project2dom\project2

dom\usersdom\users dom\salesdom\sales

dom2\joedom2\joe

dom\nancydom\nancy

dom\suedom\sue

dom2\marydom2\mary

dom\tomdom\tom

Administrador Administrador

Ventas Ventas

Project2_ usersProject2_ users

Grupos de Windows NT y Grupos de Windows NT y Funciones de SQL ServerFunciones de SQL Server Asigne permisos utilizando grupos y usuarios de Asigne permisos utilizando grupos y usuarios de

Windows NTWindows NT Utilice las funciones para unir todo Utilice las funciones para unir todo

Page 26: Seguridad en SQL

Funciones Funciones FijasFijas de Base de de Base de DatosDatos Funciones específicas de base de datosFunciones específicas de base de datos

(principalmente para propósitos administrativos)(principalmente para propósitos administrativos) No se pueden remover o modificarNo se pueden remover o modificar Nueve Funciones Fijas de Base de Datos:Nueve Funciones Fijas de Base de Datos:

db_owner (abarca todas las funciones fijas DB)db_owner (abarca todas las funciones fijas DB) db_accessadmindb_accessadmin db_securityadmindb_securityadmin db_ddladmindb_ddladmin db_backupoperatordb_backupoperator db_datareaderdb_datareader db_datawriterdb_datawriter db_denydatareaderdb_denydatareader db_denydatawriterdb_denydatawriter

Page 27: Seguridad en SQL

La Función PúblicoLa Función Público

Publico es el Grupo de “Todos”Publico es el Grupo de “Todos” En otras palabras, todos los usuarios En otras palabras, todos los usuarios

están siempre en público, y no se están siempre en público, y no se pueden removerpueden remover

Atajo para otorgar permisos a todosAtajo para otorgar permisos a todos Es posible utilizar los permisos públicos Es posible utilizar los permisos públicos

aún cuando una función de aplicación aún cuando una función de aplicación esté habilitadaesté habilitada

Page 28: Seguridad en SQL

Propiedad de ObjectoPropiedad de Objecto Los usuarios, grupos y funciones pueden Los usuarios, grupos y funciones pueden

poseer objetosposeer objetos SintaxisSintaxis

Propietario predeterminado: UsuarioPropietario predeterminado: Usuario Propietario explícito: Cualquier grupo o función a la Propietario explícito: Cualquier grupo o función a la

que está asignado el usuarioque está asignado el usuario

Permite compartir los objetos dentro de un Permite compartir los objetos dentro de un grupo o funcióngrupo o función Cualquier miembro del grupo o función tiene Cualquier miembro del grupo o función tiene

permisos de propiedad de objetospermisos de propiedad de objetos

Puede modificarse con sp_changeobjectownerPuede modificarse con sp_changeobjectowner

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

Page 29: Seguridad en SQL

Funciones Implícitas del Funciones Implícitas del Propietario de un ObjetoPropietario de un Objeto ObjectOwner no es una función específica ObjectOwner no es una función específica

en SQL Serveren SQL Server La información del propietario de un objeto se La información del propietario de un objeto se

almacena en Sysobjectsalmacena en Sysobjects No existe entrada para ésta función en No existe entrada para ésta función en

SysusersSysusers El propietario de un objeto puede:El propietario de un objeto puede:

Poseer tablas, índices, vistas, omisiones, Poseer tablas, índices, vistas, omisiones, disparadores, reglas y procedimientosdisparadores, reglas y procedimientos

Otorgar permisos a otros Otorgar permisos a otros usuarios/grupos/funciones para utilizar objetos usuarios/grupos/funciones para utilizar objetos de su propiedadde su propiedad

Cuenta con un juego completo de permisos del Cuenta con un juego completo de permisos del objetoobjeto

Page 30: Seguridad en SQL

AliasAlias

Una función de SQL Server 4.x/6.xUna función de SQL Server 4.x/6.x Los Alias sólo tienen soporte de Los Alias sólo tienen soporte de

versiones anteriores - ¡Serán versiones anteriores - ¡Serán eliminados en futuras versiones! eliminados en futuras versiones!

Los Alias son cubiertos por funcionesLos Alias son cubiertos por funciones Excepción: Alias de DBO - Será Excepción: Alias de DBO - Será

necesario calificar al propietario del necesario calificar al propietario del objeto en su creación cuando utilice la objeto en su creación cuando utilice la función dbownerfunción dbowner

p. ej., crear tabla dbo.table (c1 int no es p. ej., crear tabla dbo.table (c1 int no es nulo)nulo)

Page 31: Seguridad en SQL

Funciones de AplicaciónFunciones de Aplicación

¿Qué son? ¿Qué son? ¿Cómo se utilizan? ¿Cómo se utilizan? Su relación con las funciones Su relación con las funciones

MTS/COM+ MTS/COM+ Escenarios de UsoEscenarios de Uso

Page 32: Seguridad en SQL

Funciones de la AplicaciónFunciones de la Aplicación

Le permite restringir los permisos y el acceso a los Le permite restringir los permisos y el acceso a los objetos por medio de una aplicación específicaobjetos por medio de una aplicación específica

Una vez habilitado, suspende todos los permisos Una vez habilitado, suspende todos los permisos del usuario mientras dure la conexióndel usuario mientras dure la conexión

Puede ser protegido con un Puede ser protegido con un passwordpassword El proceso de encriptación esta habilitado para El proceso de encriptación esta habilitado para

el clienteel cliente El perfilador no mostrará el El perfilador no mostrará el passwordpassword

Se definen solamente al nivel de base de datosSe definen solamente al nivel de base de datos No es posible asignar membresías a prioriNo es posible asignar membresías a priori La actividad del usuario es auditada durante su La actividad del usuario es auditada durante su

conexiónconexión

Page 33: Seguridad en SQL

Funciones de la Aplicación Funciones de la Aplicación Seguridad de laSeguridad de la AplicaciónAplicación Ejemplo - aplicación de nóminaEjemplo - aplicación de nómina

Los usuarios de la nómina sólo deben Los usuarios de la nómina sólo deben actualizar el acceso a la tabla de salarios actualizar el acceso a la tabla de salarios cuando usen la aplicación de nóminacuando usen la aplicación de nómina

La aplicación de nómina validará el La aplicación de nómina validará el usuario,y sólo habilitará la función usuario,y sólo habilitará la función PayUser PayUser de la aplicación después de conectar al de la aplicación después de conectar al usuario a la BD usuario a la BD

El usuario sólo tendrá los permisos El usuario sólo tendrá los permisos asociados con asociados con PayUserPayUser

El usuario será auditado durante su El usuario será auditado durante su conexiónconexión

Page 34: Seguridad en SQL

Funciones de la Aplicación Funciones de la Aplicación Utilizada con MTS/COM+Utilizada con MTS/COM+ Las funciones de la aplicación Las funciones de la aplicación

SQL Server brindan una SQL Server brindan una equivalencia lógica a las equivalencia lógica a las funciones MTSfunciones MTS Crean una Función de la Crean una Función de la

Aplicación a SQL Server para Aplicación a SQL Server para cada función MTS Role usada en cada función MTS Role usada en la aplicaciónla aplicación

Agrega ambos tipos de cuentas Agrega ambos tipos de cuentas a nuevas funciones SQL Server:a nuevas funciones SQL Server: La(s)cuenta(s) dedicada MTS La(s)cuenta(s) dedicada MTS

para transacciones discretaspara transacciones discretas La(s)cuenta(s) individuales La(s)cuenta(s) individuales

de usuario/grupo Windows de usuario/grupo Windows NT conectadas directamente NT conectadas directamente a SQL Server para a SQL Server para operaciones ad hocoperaciones ad hoc

OTORGA/REVOCA/NIEGA OTORGA/REVOCA/NIEGA permisos para las Funciones permisos para las Funciones SQL Server de la AplicaciónSQL Server de la Aplicación

Ventaja: Ventaja: Unifica la seguridad de la base Unifica la seguridad de la base

de datos para los componentes de datos para los componentes MTS y operaciones ad hocMTS y operaciones ad hoc

Deventaja: Deventaja: El usuario conectado a SQL El usuario conectado a SQL

Server por medio de MTS no Server por medio de MTS no será auditado bajo su propia será auditado bajo su propia cuentacuenta

Solución:Solución: Soporte de Delegación Windows Soporte de Delegación Windows

NT 5.0 en COM+ y SQL Server NT 5.0 en COM+ y SQL Server “Shiloh”“Shiloh”

Page 35: Seguridad en SQL

AplicaciónAplicación

SQL ServerSQL Server

MTS MTS Component/MethodComponent/Method

AccesoAcceso a Función MTS a Función MTS

Rodríguez/JoséRodríguez/José ConexiónConexión MTS, Habilita la Función MTS, Habilita la Función ‘Payroll’ de MTS, y usa ‘Payroll’ de MTS, y usa Component/MethodComponent/Method

Conexión SQL Conexión SQL Rodríguez/MTS Rodríguez/MTS sp_SetAppRole ‘Nómina’sp_SetAppRole ‘Nómina’

Acceso DB Ad hocAcceso DB Ad hoc

Conexión SQL Conexión SQL

José RodríguezJosé Rodríguez

sp_SetAppRole ‘Nomina’sp_SetAppRole ‘Nomina’

Funciones de la Aplicación Funciones de la Aplicación Opción: Trusted MTS/COM+Opción: Trusted MTS/COM+

Page 36: Seguridad en SQL

Funciones de la Aplicación Funciones de la Aplicación Option: Trusted MTS/COM+Option: Trusted MTS/COM+

Si confía en sus componentes MTS/COM+, Y son su Si confía en sus componentes MTS/COM+, Y son su UNICO método de acceso a la base de datos …UNICO método de acceso a la base de datos … Debe restringir el acceso a la base de datos a solo la cuenta Debe restringir el acceso a la base de datos a solo la cuenta

de servicio de los componentes MTS/COM+de servicio de los componentes MTS/COM+ Conéctese a SQL Server utilizando la Seguridad Integrada, Conéctese a SQL Server utilizando la Seguridad Integrada,

y cambie a la base de datos apropiada y cambie a la base de datos apropiada Habilita la función de la aplicación para los componentes Habilita la función de la aplicación para los componentes

MTS/COM+MTS/COM+

No es necesario el password en la función de la No es necesario el password en la función de la aplicaciónaplicación CaveatCaveat: La auditoría se lleva a cabo sólo en la cuenta de : La auditoría se lleva a cabo sólo en la cuenta de

servicio (Es necesario que usted mismo la desarolle)servicio (Es necesario que usted mismo la desarolle)

Page 37: Seguridad en SQL

Modelo de Seguridad SQL ServerModelo de Seguridad SQL Server

Establecer Credenciales de ConexiónEstablecer Credenciales de Conexión

Conectar a la Computadora con SQL ServerConectar a la Computadora con SQL Server

Establecer un Contexto de Base de DatosEstablecer un Contexto de Base de Datos

Verificar permisos para todas lasVerificar permisos para todas lasacciones dentro de una base de datosacciones dentro de una base de datos

Solicitud de Conección de Red (IPC$ en NT)Solicitud de Conección de Red (IPC$ en NT)

Solicitud de Autentificación de Conexión al SQL ServerSolicitud de Autentificación de Conexión al SQL Server

Cambiar a una base de datos y autorizar el accesoCambiar a una base de datos y autorizar el acceso

Intentar realizar una acciónIntentar realizar una acción

Page 38: Seguridad en SQL

PermisosPermisosInstrucción contra ObjetoInstrucción contra Objeto

Los permisos de instrucción le Los permisos de instrucción le permiten ejecutar una instrucción- i.e., permiten ejecutar una instrucción- i.e., Crear tabla, crear vista view, etc.Crear tabla, crear vista view, etc.

Los permisos objeto le permiten llevar Los permisos objeto le permiten llevar a cabo una acción sobre un objeto en a cabo una acción sobre un objeto en particular:particular: Seleccionar, Insertar, Actualizar, Borrar, Seleccionar, Insertar, Actualizar, Borrar,

Ejecutar, ReferenciasEjecutar, Referencias El hecho de que no existan permisos, no El hecho de que no existan permisos, no

significa que puede utilizar un objetosignifica que puede utilizar un objeto

Page 39: Seguridad en SQL

Permisos Permisos Otorgar/revocar/negar permisosOtorgar/revocar/negar permisos Verbos del árbol de permisos en SQL Verbos del árbol de permisos en SQL

Server:Server: Otorgar le da un derechoOtorgar le da un derecho Negar explicitamente niega un derechoNegar explicitamente niega un derecho Revocar elimina una negación u orotgamiento un Revocar elimina una negación u orotgamiento un

existenteexistente Verifique los permisos con la función Permisos ()Verifique los permisos con la función Permisos ()

++--REVOCARREVOCAR

OTORGAROTORGAR

REVOCAR[NEGAR]REVOCAR[NEGAR]

NEGARNEGAR

NEGARNEGAROTORGAROTORGAR

Page 40: Seguridad en SQL

Permisos, Grupos, FuncionesPermisos, Grupos, FuncionesImplementaciónImplementación

SysMembers - Membresía de FunciónSysMembers - Membresía de Función Sysusers - Cuentas del UsuarioSysusers - Cuentas del Usuario Syspermissions - permisosSyspermissions - permisos Sysobjects - propietarios de objetosSysobjects - propietarios de objetos SysColumns - para permisos a nivel ColumnaSysColumns - para permisos a nivel Columna

UidSIDNameStatusRolesCreateDateUpdateDateAltUIDPasswordSuidGIDEnviron

SysUsers

MemberUIdGroupUId

SysMembersIdGranteeGrantorActaddActmodSeladdSelmodUpdaddUpdmodRefaddRefmod

SysPermissions

ObjectIdOwnerId

ObjectName…

SysObjects

ObjectId

ColidObjectName

SysColumns

Page 41: Seguridad en SQL

AgendaAgenda

Estructura de SeguridadEstructura de Seguridad Integración Windows NTIntegración Windows NT®® y y

WindowsWindows®® 2000 2000 Modelo de Seguridad SQL Server 7.0Modelo de Seguridad SQL Server 7.0 Implementación del Modelo de Implementación del Modelo de

SeguridadSeguridad

Page 42: Seguridad en SQL

Implementación del Modelo Implementación del Modelo Funciones de desarrolloFunciones de desarrollo

Para determinar la membresía de funciónPara determinar la membresía de función is_srvrolemember(‘función’, ‘conexión’)is_srvrolemember(‘función’, ‘conexión’) is_member(‘función)is_member(‘función)

Para determinar el contexto del usuarioPara determinar el contexto del usuario suser_sname(SID)suser_sname(SID) user_name(id) o simplemente usuariouser_name(id) o simplemente usuario

Ejemplo:Ejemplo: Seleccione is_member(‘sales’), suser_sname(), Seleccione is_member(‘sales’), suser_sname(),

usuariousuario 00 Rodríguez\rwaymiRodríguez\rwaymi dbodbo

Page 43: Seguridad en SQL

Implementación del Modelo Implementación del Modelo Desarrollo de la administración de la base Desarrollo de la administración de la base de datos databasede datos database

En ambientes sencillos hay poca o nula En ambientes sencillos hay poca o nula sobrecarga de administración sobrecarga de administración

Ejemplo de usuario individualEjemplo de usuario individual Aceptar por predeterminación (local admins = Aceptar por predeterminación (local admins =

Sysadmin) o use SASysadmin) o use SA Multi-usuario sin seguridadMulti-usuario sin seguridad

Otortgar SysAdmin al grupo de desarrolladores Otortgar SysAdmin al grupo de desarrolladores de Windows NTde Windows NT

Multi-user con seguridad ligeraMulti-user con seguridad ligera Hacer un SysAdmin a DBA Hacer un SysAdmin a DBA Hacer el grupo de desarrolladores de Windows Hacer el grupo de desarrolladores de Windows

NT DB_OwnerNT DB_Owner

Page 44: Seguridad en SQL

Implementación del Modelo Implementación del Modelo

Administración de la Producción del Administración de la Producción del ServidorServidor Controle los usuarios/grupos de Windows NT Controle los usuarios/grupos de Windows NT

que tienen acceso al servidor invocando:que tienen acceso al servidor invocando: sp_grantloginsp_grantlogin sp_revokeloginsp_revokelogin sp_denyloginsp_denylogin

Cuando sea posible, aproveche sus grupos de Cuando sea posible, aproveche sus grupos de dominio existentesdominio existentes

Asigne membresias de funciones a lo largo de Asigne membresias de funciones a lo largo de todo el servidor para usuarios administrativostodo el servidor para usuarios administrativos sp_addsrvrolemember, sp_dropsrvrolemembersp_addsrvrolemember, sp_dropsrvrolemember

Page 45: Seguridad en SQL

Implementación del Modelo Implementación del Modelo

Administración de laAdministración de la Producción de Producción de la Base de Datosla Base de Datos Controle los usuarios/grupos de Windows NT Controle los usuarios/grupos de Windows NT

que tienen acceso al servidor invocando:que tienen acceso al servidor invocando: sp_grantdbaccesssp_grantdbaccess sp_revokedbaccesssp_revokedbaccess

De nuevo, cuando sea posible, aproveche sus De nuevo, cuando sea posible, aproveche sus grupos de dominiogrupos de dominio

Asigne membresias de funciones fixed-Asigne membresias de funciones fixed-database de acuerdo a su necesidaddatabase de acuerdo a su necesidad sp_addrolemember, sp_droprolemembersp_addrolemember, sp_droprolemember

Page 46: Seguridad en SQL

Implementación del Modelo Implementación del Modelo

Administración de laAdministración de la Producción de Producción de la Base de Datosla Base de Datos Cree funciones flexibles de base de datos de Cree funciones flexibles de base de datos de

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

de datos de datos sp_addrolemember, sp_droprolemembersp_addrolemember, sp_droprolemember

Cree funciones de aplicaciónde acuerdo a sus Cree funciones de aplicaciónde acuerdo a sus necesidadesnecesidades sp_addapprolesp_addapprole

Otorge/Niege permisos a las funciones flexibles y/o Otorge/Niege permisos a las funciones flexibles y/o de aplicaciónde aplicación

Sólo otorge/niege permisos directamente a un Sólo otorge/niege permisos directamente a un usuario individual cuando sea nacesariousuario individual cuando sea nacesario

Page 47: Seguridad en SQL

Implementación del Modelo Implementación del Modelo

Administración de laAdministración de la Producción de Producción de la Base de Datosla Base de Datos Hágalo fácilmente -Hágalo fácilmente -

Todos los objetos en una base de datos son Todos los objetos en una base de datos son propiedad de dbopropiedad de dbo Asi evita Cadenas de Propiedad RotasAsi evita Cadenas de Propiedad Rotas Mejora la seguridadMejora la seguridad

Utilice los procedimientos de Vistas y Utilice los procedimientos de Vistas y Almacenados para enmascarar las tablas Almacenados para enmascarar las tablas

Evite los permisos a nivel de Columna, cuando Evite los permisos a nivel de Columna, cuando sea posiblesea posible

Page 48: Seguridad en SQL

Implementación del Modelo Implementación del Modelo

Reguladores de PermisosReguladores de Permisos La implementación de of fixed-server roles requiere de La implementación de of fixed-server roles requiere de

una entrada de conexión para cada miembro, una entrada de conexión para cada miembro, explicitamente agregado a una función explicitamente agregado a una función P.ej., si rodrig\ventas es un inicio de sesión, pero usted P.ej., si rodrig\ventas es un inicio de sesión, pero usted

ejecuta sp_addsrvrolemember [redmond\joe],’dbcreator’, se ejecuta sp_addsrvrolemember [redmond\joe],’dbcreator’, se agrega un nuevo inicio de sesión a [redmond\joe] con bandera agrega un nuevo inicio de sesión a [redmond\joe] con bandera hasaccess en 0 (visible desde el vista syslogins)hasaccess en 0 (visible desde el vista syslogins)

La implementación de of Sysobjects y Syspermissions La implementación de of Sysobjects y Syspermissions requiere un UID para cada regulador de requiere un UID para cada regulador de propietario/permiso de objeto en una base de datospropietario/permiso de objeto en una base de datos

Ejemplo en el siguiente slide…Ejemplo en el siguiente slide…

Page 49: Seguridad en SQL

Implementación del Modelo Implementación del Modelo Reguladores de PermisosReguladores de Permisos

Ejemplo de Base de Datos:Ejemplo de Base de Datos: Rodríguez \José en el grupo Rodríguez\ventasRodríguez \José en el grupo Rodríguez\ventas Rodríguez\ventas es un usuario en la base de datos PUBSRodríguez\ventas es un usuario en la base de datos PUBS José se conecta a PUBS vía una membresía de grupoJosé se conecta a PUBS vía una membresía de grupo José crea José crea tablatabla [Rodríguez \ José ].MyTable [Rodríguez \ José ].MyTable Se agrega un nuevo usuario [Rodríguez \ José ] a la tabla Se agrega un nuevo usuario [Rodríguez \ José ] a la tabla

sysusers para rastrear la propiedadsysusers para rastrear la propiedad Pero la bandera hasdbaccess está en 0Pero la bandera hasdbaccess está en 0 Si revoca la membresía de José en el grupo de ventas, Si revoca la membresía de José en el grupo de ventas,

ya no tendrá acceso a la base de datos o acceso a su ya no tendrá acceso a la base de datos o acceso a su tabla, (aunque la tabla todavía exista) tabla, (aunque la tabla todavía exista)

Nótese que se puede reasignar el propietario de un Nótese que se puede reasignar el propietario de un objetoobjeto

Page 50: Seguridad en SQL

Implementación del Modelo Implementación del Modelo

AuditoríaAuditoría Use el Perfilador SQL Server Profiler para Use el Perfilador SQL Server Profiler para

auditar la actividad:auditar la actividad: Intentos de conexión, conexiones y Intentos de conexión, conexiones y

desconexionesdesconexiones TSQL selección, inserte, y actualice, borrarTSQL selección, inserte, y actualice, borrar Ejecución de procedimientos almacenadosEjecución de procedimientos almacenados RPC/TSQL batch completesRPC/TSQL batch completes Objeto: creación/borrado, abierto/cerradoObjeto: creación/borrado, abierto/cerrado

Se agregarán nuevas funciones de auditoría Se agregarán nuevas funciones de auditoría en SP2en SP2

Page 51: Seguridad en SQL

Implementación del Modelo Implementación del Modelo

SQL Server para EscritorioSQL Server para Escritorio Ideal para el usauario individual de Ideal para el usauario individual de

esrcitorio o bases de datos multi-usuarios esrcitorio o bases de datos multi-usuarios ligeras (5 o menos)ligeras (5 o menos)

Administración SimpleAdministración Simple Crear un (os) usuario(s) SQL ServerCrear un (os) usuario(s) SQL Server Crear fiunciones apropiadas y asigne permisosCrear fiunciones apropiadas y asigne permisos Otorge funciones a los usuarios SQL ServerOtorge funciones a los usuarios SQL Server

La autentificación SQL Server es la única La autentificación SQL Server es la única opción en Windows 95/Windows 98opción en Windows 95/Windows 98

Utilice una Estación de Trabajo Windows Utilice una Estación de Trabajo Windows NTNT®® si se requiere de seguridad si se requiere de seguridad

Page 52: Seguridad en SQL

AgendaAgenda

Estructura de SeguridadEstructura de Seguridad Integración Windows NTIntegración Windows NT®® y y

WindowsWindows®® 2000 2000 Modelo de Seguridad SQL Server 7.0Modelo de Seguridad SQL Server 7.0 Implementación del Modelo de Implementación del Modelo de

SeguridadSeguridad

Page 53: Seguridad en SQL

ResumenResumen

Integración total con Integración total con Windows NT/2000 SecurityWindows NT/2000 Security

Completo soporte de usuarios, Completo soporte de usuarios, grupos, y funcionesgrupos, y funciones

Funciones de aplicación para Funciones de aplicación para arquitecturas de tercer nivel arquitecturas de tercer nivel

Granulidad flexible de permisos y Granulidad flexible de permisos y funciones de sistemasfunciones de sistemas

Administración simple y sólidaAdministración simple y sólida

Page 54: Seguridad en SQL

Información RelacionadaInformación Relacionada Libros SQL Server en líneaLibros SQL Server en línea http://www.microsoft.com/sqlhttp://www.microsoft.com/sql

Documentos estratégicos e información general Documentos estratégicos e información general SQL ServerSQL Server

Próxima disponibilidad de documentos Próxima disponibilidad de documentos estratégicos de seguridadestratégicos de seguridad

http://www.microsoft.com/securityhttp://www.microsoft.com/security elementos/actualizaciones de seguridad generalelementos/actualizaciones de seguridad general

http://support.microsoft.com/http://support.microsoft.com/support/sqlsupport/sql Páginas de soporte de SQL ServerPáginas de soporte de SQL Server

Page 55: Seguridad en SQL

Preguntas y RespuestasPreguntas y Respuestas

Page 56: Seguridad en SQL

Curriculum Oficial MicrosoftCurriculum Oficial Microsoft

Curriculum técnico Instructor-led, hands-on Curriculum técnico Instructor-led, hands-on desarrollado por Microsoftdesarrollado por Microsoft Ayuda a los profesionales de la TI a obtener Ayuda a los profesionales de la TI a obtener

experiencia con los productos de Microsoftexperiencia con los productos de Microsoft Disponible en más de 1,900 Centros Disponible en más de 1,900 Centros

Certificados de Educación Técnica de Microsoft Certificados de Educación Técnica de Microsoft en todo el mundoen todo el mundo

Disponible en TechEd Pabellón de Disponible en TechEd Pabellón de Productos de Tech • Ed : CD MOC Sampler Productos de Tech • Ed : CD MOC Sampler GratisGratis

Curriculum que aplica para esta sesión : Curriculum que aplica para esta sesión : 832b832b

Page 57: Seguridad en SQL