Upload
manuela-olivo
View
12
Download
2
Embed Size (px)
Citation preview
Seguridad en SQL Server Seguridad en SQL Server 20052005Hector Minaya, MCSD, [email protected]
Autenticación & AutorizaciónAutenticación & AutorizaciónAutenticación & AutorizaciónAutenticación & Autorización
Usuarios & SchemasUsuarios & SchemasUsuarios & SchemasUsuarios & Schemas
Seguridad para Seguridad para DesarrolladoresDesarrolladoresSeguridad para Seguridad para DesarrolladoresDesarrolladores
Terminología de SeguridadTerminología de Seguridad
Principal: individuos, grupos y procesos que pueden solicitar recursos de un servidor SQL.
Securable (asegurable): los recursos a los cuales el sistema de autorización de SQL Server le regula el acceso.
SQL Server define 4 conceptos SQL Server define 4 conceptos básicos de Principalsbásicos de Principals
Login de SQL Server Usuario de la Base de datos Role de la BD Role de una aplicación
Login de SQL ServerLogin de SQL Server
Un login es la habilidad de utilizar una instancia del Servidor SQL
Esta asociado con un usuario de Windows o con un usuario de SQL
Son autenticados contra SQL Server Por defecto tienen acceso a la base de datos
“default” Algunos grupos de Windows tienen logins
preestablecidos.
Usuarios & RolesUsuarios & Roles
Un usuario es un principal de una base de datos en particular.
Los Logins son asignados a los usuarios Los grants se le hacen a los usuarios. A los usuarios se le asignan sus propios schemas.
Los usuarios pueden pertenecer a Roles. Todos los usuarios son miembros del Role “Public” El login “sa” esta asignado al usuario dbo en todas las
base de datos.
RolesRoles
Los Roles pueden existir a nivel de instancia o base de datos.
A nivel de Instancia Los logins pueden ser otorgados roles llamados
“server roles”. No se pueden crear Roles nuevos
A nivel de Base de Datos Los usuarios de base de datos pueden ser
otorgados roles. Se pueden crear roles nuevos.
Role de una AplicaciónRole de una Aplicación
Un role de aplicación sirve para asignarle permisos a una aplicación:
Tiene un password No contiene usuarios
En el Servidor & BD Servidor Login de SQL Server Usuario de SQL Server Roles de la BD Roles de Aplicaciones Assemblies Servicios Fulltext Catalog Eventos DDL Schema
En un Schema Tablas Vistas Funciones Procedimientos Reglas Sinónimos Agregados
Ejemplos de Securables Ejemplos de Securables (asegurables) (asegurables)
¿Quien Soy?
¿Soy miembrode Grupos o Roles?
¿Quien me verifico?
ID PrimarioID Primario
ID(s) ID(s) SecundariosSecundarios
AuthenticatorAuthenticator
AutenticaciónAutenticación
Que es Autenticación? Es básicamente el proceso de determinar que alguien es
realmente quien dice ser.
Mejoras en la Autenticación sobre Mejoras en la Autenticación sobre SQL2000SQL2000
La información de Login no se envía como texto plano a través de la red.
La nueva política para los passwords esta activada por default. Esta política incluye:
Complejidad de passwords. No mas passwords como: “sa”, “password”, “Admin”, “Administrator”, “sysadmin” o “”
Maneja el bloqueo de las cuentas en base a intentos fallidos
Expiración de passwords
DEMODEMO
SchemasSchemas
Schemas son contenedores para objetos de base de datos.
Un esquema le puede pertenecer a un usuario, role o roleapp
Si el usuario no tiene un schema asignado se utiliza el schema “DBO”.
A diferencia de SQL 2000 (y anterior) múltiples usuarios pueden ser colocados en un schema.
SchemasSchemas
CREATE TABLE accounts.invoice (…)GO
ALTER SCHEMA accounts2 TRANSFER accounts.invoice
accounts es un schema,no existe un usuario que se llame ‘accounts’
Transferir de un schema a otro
Seguridad hoy en díaSeguridad hoy en día
SSL
ISA Firewall
IIS
SQL Server
ISA Firewall IPSec
EncriptaciónEncriptación
SQL Server 2005 tiene la habilidad de utilizar múltiples algoritmos para la encriptación de la data:
Llaves simétricas (RC4, RC2, DES Family, AES Family) Llaves asimétricas (Rivest-Shamir-Adelman Encryption
(RSA)) Certificados (X.509 V1)
DEMODEMO
ContextoContexto
En SQL2005 el código no tiene que ser ejecutado en el mismo contexto del usuario que esta haciendo el llamado.
“Execute AS” Para Stored Procedures & Funciones.
JoseJose Jose.SProcJose.SProc Silvia.TablaSilvia.Tabla
‘‘Execute AS ‘Silvia’ ’Execute AS ‘Silvia’ ’
Se verifican los Se verifican los permisos de permisos de ejecución de Joseejecución de Jose
Se verifican los Se verifican los permisos de Select permisos de Select para Silvia, no Jose.para Silvia, no Jose.
SQL Server 2005SQL Server 2005
Execute ASExecute AS
El código puede se ejecutado como: CALLER (quien lo esta llamando) SELF (el usuario actual que esta creado o
alterando el objeto) OWNER (el dueño del objeto) a specific user (un usuario en especifico)
Si no colocamos esta opción nuestro código se ejecuta bajo el contexto del usuario que esta haciendo la llamada (CALLER).
Recursos en LíneaRecursos en Línea
MSDN: http://www.microsoft.com/sql/2005/productinfo/
securityfeatures_1.mspx
Información Adicional www.mr2solutions.net
NetaWeb www.netaweb.com.do
Contacto [email protected]
??