Seguraridad Sql Server
Marta Zorrilla
Tabla de contenidos
Modelo de Seguridad en SQL Server Inicios de Sesión y Roles de servidor Seguridad de bases de datos
Usuarios Roles de base de datos Roles definidos por el usuario Esquemas de Base de Datos
Permisos Contexto de Ejecución Encriptación de datos Auditoría Inyección SQL Buenas prácticas
2 Marta Zorrilla -UC 11/21/2010
Modelode Seguridad en SQL Server
Solicitud de conexión de Red Conexión con el Servidor de SQL Server Solicitud de Inicio de Sesión en SQL Server Establecer Credenciales de Inicio de Sesión Cambio a una BBDD y autorización de acceso Establecer un Contexto de Base de Datos Intento de realizar alguna acción Verificar Permisos para las acciones
3 Marta Zorrilla -UC 11/21/2010
Jerarquía de SeguridadPrincipals: entidades de seguridad: Usuarios windows, usuarios sql server, Usuarios de BD Asegurables: recursos que pueden ser protegidos
4
Marta Zorrilla -UC
11/21/2010
Inicios de sesión - Usuarios
Modo de autentificación (acceso al servidor) (Inicio de sesión: Login) Windows (S.O.) Servidor SQL Server Acceso y gestión de una BD (autorización: User) Permisos a objetos de BDejecución de sentencias Permisos a través de roles: del servidor o de BD definidos por el usuario
5 Marta Zorrilla -UC 11/21/2010
Inicios de sesión preestablecidos
Al instalarse SQL Server se crean 2 inicios de sesión:
la cuenta de servicio que se utiliza para iniciar el servicio SQL Server. Puede cambiarse sus privilegios. el usuario sa. Este no puede eliminarse ni modificarse. No estará disponiblesi solo está configurada la autentificación de Windows.
Pueden realizar cualquier tarea en SQL Server (pertenecen al rol de servidor sysadmin)
6
Marta Zorrilla -UC
11/21/2010
Tipos de Inicios de sesión
Windows Usuario Grupo de usuarios SQL Server Certificado Clave Asimétrica Asociados a Credenciales Para acceso a recursos externos
7
Marta Zorrilla -UC
11/21/2010Tipos de Inicios de sesión (y 2)
Opciones de Administración
Podemos forzar el cambio de contraseña en el primer inicio de sesión: MUST_CHANGE Exigir directivas de contraseña Desbloquear Cuentas: UNLOCK Deshabilitar un inicio de sesión: DISABLE Establecer una BD de conexión predeterminada
8
Marta Zorrilla -UC
11/21/2010
Crear Inicios de sesión (y 3)
Gráficamente SSMS CREATE LOGINCREATE LOGIN Pepe WITH PASSWORD = ‘Passwd' MUST_CHANGE CREATE LOGIN [UNICAN\pepe] FROM WINDOWS
DROP LOGIN / ALTER LOGIN La información se almacena en
sys.server_principals: Contiene una fila por cada entidad de
seguridad del servidor.
sys.sql_logins: Devuelve una fila por cada inicio de sesión de SQL.
9
Marta Zorrilla -UC
11/21/2010
Roles fijos de Servidor
Cada rol agrupa unconjunto de permisos Facilitan la admón. de seguridad Se definen a nivel de servidor. Independiente, por tanto, de las bases de datos Un inicio de sesión puede pertenecer a cero o más roles de servidor Un inicio de sesión que pertenezca a un rol de servidor adquiere los permisos de ese rol Son fijos:
No se pueden modificar sus permisos No pueden eliminarse No pueden añadirse nuevos roles de servidor10 Marta Zorrilla -UC 11/21/2010
Roles fijos de Servidor ( y 2)
sp_addsrvrolemember /sp_dropsrvrolemember sys.server_role_members sp_srvrolepermission sys.server_permissions
11 Marta Zorrilla -UC 11/21/2010
Seguridad de base de datos
Los siguientes inicios de sesión pueden conectarse a una BD:
sysadmin Propietario de la BD Usuarios de la BD Cualquier inicio de sesión si existe elusuario guest y tiene permiso
Usuario de BD
Definido a nivel de BD Corresponde con un inicio de sesión
12
Marta Zorrilla -UC
11/21/2010
Conceder acceso a una BD
Pueden conceder permisos:
sysadmin Propietario de la BD Usuario con rol db_owner Usuario con rol db_accessadmin
Al conceder acceso a un inicio de sesión a una base de datos:
Se crea el usuario correspondiente en esa...
Regístrate para leer el documento completo.