Seguridad SQL ServerSeguridad SQL Server™™ 7.0 7.0
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
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?
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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)
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
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
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
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
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
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..
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
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)
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
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
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
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”
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+
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)
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
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
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
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
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
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
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
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
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
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
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
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…
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
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
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
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
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
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
Preguntas y RespuestasPreguntas y Respuestas
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
Top Related