Seguridad en SQL Server 2005



Documentos relacionados
SQL Server 2008 Seguridad. Marta Zorrilla

Seguridad de la Información Permisos. Sistemas de Bases de Datos II - ITS EMT - CETP

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

SEGURIDAD SQL SERVER

Microsoft SQL Server Usuarios, Roles, Encriptación y Back Up de la base de datos.

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

CONTROL DE ACCESO. curso 2008

Select table data Insert table data Update table data Delete table data Create table

CREATE USER ADMINISTRADOR IDENTIFIED BY ADMIN DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 500K ON USERS;

ADMINSTRANDO SEGURIDAD EN SQL SERVER 2005

8 SQL SERVER 2008 RA-MA

Base de datos relacional

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Sistemas de Datos Curso: Ernesto Chinkes. Sistemas de Datos. Niveles de Control de acceso. Criptografía. Aspectos legales y éticos.

MANUAL BÁSICO DE ORACLE

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

Consultas con combinaciones

CLAVE DE UNIDAD DE APRENDIZAJE DURACIÓN (HORAS) NOMBRE DE LA PRÁCTICA. Comandos SQL 2

6 El catálogo del sistema

5 Objetos de base de datos

Manual de Usuario Servidor Cloud

CLAVE DE UNIDAD DE APRENDIZAJE DURACIÓN (HORAS) NOMBRE DE LA PRÁCTICA. Tópicos de arquitectura de computadoras. Comandos SQL 2

CREACION DE USUARIOS EN MY SQL

Manual de Usuario: Servidor Cloud y Servidor Cloud Gestionado

Contenido QUÉ ES SERVIDOR CLOUD?... 3 ACCESO AL SERVIDOR CLOUD... 3 ADMINISTRACIÓN DEL SISTEMA... 6

Administración de Oracle 9i. Existen alrededor de 126 privilegios del sistema, a continuación vemos los más destacados

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Bases de Datos 2. Teórico

ÍNDICE. Capítulo 1. Conceptos de base de datos de SQL Azure... 1

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

DataBase Administration

T12 Vistas y tablas temporales

sql*plus es un programa de linea de comandos de oracle que puede ejecutar comandos sql y pl/sql de forma interactiva o mediante un script.

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

Bases de Datos. Marta Elena Zorrilla Pantaleón Rafael Duque Medina DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN

GUIA DE SQL DDL (DATA DEFINITION LANGUAGE) DML (DATA MANIPULATION LANGUAGE) Agosto de 2008 AUTORES:

Seguridad y Auditoría de Bases de Datos Oracle

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

Guía rápida del usuario. Disco duro virtual.

Creación y Gestión de Tablas. Copyright Oracle Corporation, All rights reserved.

FIREBIRD: ADMINISTRACIÓN Y SEGURIDAD

Microsoft Dynamics. Instalación de Management Reporter for Microsoft Dynamics ERP

Instalación de SQL Server Express Edition en Grupo de Trabajo WhitePaper Junio de 2008

UNIVERSIDAD DEL AZUAY

CURSO DE SQL SERVER 2005

SISTEMA DE DATOS CURSO: ERNESTO CHINKES FACULTAD DE CIENCIAS ECONOMICAS UNIVERSIDAD DE BUENOS AIRES GUIA: SQL GUIA DE SQL

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

El catalogo del sistema. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Tutorial Oracle SQL Developer 1.2.1

Curso de SQL y de SQL Server 2008 R2 Parte 3 Visión general de SQL Server

AUTENTICACIÓN: DETERMINAR SI EL USUARIOS ES QUIÉN DICE SER AUTORIZACIÓN: DETERMINA A CUÁLES OBJETOS TIENE ACCESO EL USUARIO

Trabaja los Sistemas Aspel desde tus sucursales con Terminal Server

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Instalación de SQL Server Express Edition en Dominio WhitePaper Junio de 2008

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1

11. Seguridad en sistemas de bases de datos

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

Vistas en postgresql

Guía de Laboratorio Base de Datos I.

Formas de llevar a cabo un backup de una base de datos MySQL

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

Tema 6. Restricciones a la Base de Datos: Integridad y seguridad

Técnicas de Programación

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

RESTRICCIONES DE DOMINIOS

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

Bases de Datos Relacionales

Seguridad en SQL Server

Manual de Panel de Control de Hosting Compartido

REPLICACION DE BASE DE DATOS

Bases de datos relacionales y el modelo entidad-relación

PROCEDIMIENTO DE ACCESO A DB2 AS/400 MEDIANTE SQL SERVER

Tema 33. El lenguaje SQL

HOWTO: Configurar SQL Server Express, para que permita conexiones remotas por tcp con autenticación de servidor

SQL Server 2000 Introducción

Oracle Básico PL/SQL

PERMISOS DE CARPETA COMPARTIDA Y NTFS

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Instalación de SQL Server 2008 y su manejo con los sistemas Aspel

- Acción para errores de comandos de lotes o sqlcmd. - Se conecta a una instancia de SQL Server.

Microsoft SQL Server 2005

Usuarios y Seguridad

INTRODUCCIÓN A CARPETAS COMPARTIDAS WINDOWS XP

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

SISTEMAS IDEALES SISTIDE, S.A. SISTEMA GESTION DE USUARIOS

Casos de Uso De Casino Online

Instalación y configuración de SharePoint (SPS) 2003

3. El catálogo 26. Laboratorio de Bases de Datos

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

UNIVERSIDAD TECNOLÓGICA ECOTEC FACULTAD DE SISTEMAS COMPUTACIONALES SYLLABUS. Base de Datos II CODIGO COM 338 CREDITOS 3

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

Base de datos I Facultad de Ingeniería. Escuela de computación.

ADMINISTRACIÓN DE BASE DE DATOS

Windows 2008 Server ServidorW200854

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Microsoft SQL Azure. Administración y desarrollo en la nube. María Pérez Marqués

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

Transcripción:

Seguridad en SQL Server 2005

Tabla de contenidos Modelo de Seguridad en SQL Server Inicios de Sesión - Usuarios Esquemas de Base de Datos Usuarios de Base de Datos Contexto de Ejecución Permisos a sentencias y objetos Marta Zorrilla 2009-2010 109

Modelo de Seguridad en SQL Server Solicitud de conexión de Red Conexión 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 Marta Zorrilla 2009-2010 110

Jerarquía de Seguridad Marta Zorrilla 2009-2010 111

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 BD ejecución de sentencias Permisos a través de roles: del servidor o de BD definidos por el usuario Marta Zorrilla 2009-2010 112

Inicios de sesión preestablecidos Marta Zorrilla 2009-2010 113

Tipos de Inicios de sesión Windows Usuario Grupo de usuarios SQL Server Certificado o Clave Asimétrica Asociados a Credenciales Para acceso a recursos externos CREATE CREDENTIAL Marta Zorrilla 2009-2010 114

Tipos 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 BD de conexión predeterminada Marta Zorrilla 2009-2010 115

Crear Inicios de sesión (y 3) Gráficamente SSMS CREATE LOGIN CREATE LOGIN Pepe WITH PASSWORD = Passwd' MUST_CHANGE CREATE LOGIN [UNICAN\pepe] FROM WINDOWS sys.server_principals sys.sql_logins DROP LOGIN / ALTER LOGIN Marta Zorrilla 2009-2010 116

Roles fijos de Servidor Marta Zorrilla 2009-2010 117

ROLES FIJOS DE SERVIDOR sp_addsrvrolemember /sp_dropsrvrolemember sys.server_role_members sp_srvrolepermission sys.server_permissions Marta Zorrilla 2009-2010 118

ANSI SQL-92: Esquemas Colección de objetos de la BBDD cuyo propietario es un único principal y forma un único espacio de nombres Espacio de nombres: es un conjunto de objetos que no pueden tener nombres duplicados servidor.basededatos.esquema.objeto Los objetos ahora pertenecen al esquema de forma independiente al usuario Beneficios El borrado de un usuario no requiere que tengamos que renombrar los objetos Resolución de nombres uniforme Gestión de permisos a nivel de esquema Marta Zorrilla 2009-2010 119

Seguridad de base de datos Marta Zorrilla 2009-2010 120

Conceder acceso a una BD Marta Zorrilla 2009-2010 121

ROLES FIJOS DE BASE DE DATOS Marta Zorrilla 2009-2010 122

Roles definidos por el usuario Marta Zorrilla 2009-2010 123

Definir usuario del Gestor Marta Zorrilla 2009-2010 124

Usuarios de Base de Datos Crear un Usuario CREATE USER <usuario> FOR LOGIN <login> WITH DEFAULT_SCHEMA = <schema> Podemos crear un usuario sin asociar: WITHOUT LOGIN Modificar ALTER USER Eliminar DROP USER No si es propietario de objetos Invitado GRANT CONNECT TO GUEST sys.database_principals Marta Zorrilla 2009-2010 125

Roles de Base de Datos CREATE ROLE <nombre> sp_addrolemember <role>,<usuario> sys.database_role_members Rol Public Marta Zorrilla 2009-2010 126

Definir role de BD Rol de aplicación. Un usuario que se conecta a través de una aplicación que habilita el rol de aplicación, pierde todos sus privilegios, disponiendo exclusivamente los que le ofrece este rol. Permite establecer un nivel alto de seguridad, impidiendo el acceso vía ODBC, OLEDB. Marta Zorrilla 2009-2010 127

Permisos a sentencias Para otorgar permisos a acciones. Su sintaxis es: GRANT {{ ALL ALL instrucción [[,...n,...n]]}} TO TO {usuario [[,...n,...n]] role role [[,...n,...n] ]} } instrucción instrucción (entre (entre otras): otras): CREATE CREATE {{ DATABASE DATABASE DEFAULT DEFAULT FUNCTION FUNCTION PROCEDURE PROCEDURE RULE RULE TABLE TABLE VIEW VIEW }} ALTER ALTER {{ DATABASE DATABASE DEFAULT DEFAULT FUNCTION FUNCTION PROCEDURE PROCEDURE RULE RULE TABLE TABLE VIEW VIEW }} BACKUP BACKUP DATABASE DATABASE BACKUP BACKUP LOG LOG Marta Zorrilla 2009-2010 130

Permisos a objetos Para otorgar permisos a objetos de la BD. Concede y quita permisos, inicialmente, el propietario de la BD. Su sintaxis es: GRANT {{ ALL ALL [[ PRIVILEGES ]] permiso [[,...n,...n]]}} {{ [[(( columna [[,...n,...n]]))] ] ON ON {{ tabla tabla vista vista }} ON ON {{ tabla tabla vista vista }}[[(( columna [[,...n,...n]]))] ] ON ON {{ procedimiento procedimiento_extendido }} ON ON {{ función} }} TO TO {usuario [[,...n,...n]] role role [[,...n,...n] ]} } [[ WITH WITH GRANT OPTION ]] [[ AS AS {{ usuario usuario role role }}]] permiso permiso (entre (entre otros): otros): SELECT, SELECT, INSERT, INSERT, DELETE, DELETE, UPDATE, UPDATE, EXECUTE. EXECUTE. WITH WITH GRANT GRANT OPTION: OPTION: el el usuario usuario al al que que se se le le otorga otorga permiso, permiso, puede puede a a su su vez, vez, otorgárselo otorgárselo a a otro. otro. AS AS :: usuario usuario o o role role que que establece establece el el permiso permiso Marta Zorrilla 2009-2010 131

Ejemplos GRANT Permitir a los usuarios Maria, Juan y Marta crear bases de datos y tablas GRANT CREATE DATABASE, CREATE TABLE TABLE TO TOMaria, Juan, Juan, [Servidor\Marta] Permitir a María y a Juan, insertar, modificar y borrar en la tabla autores. GRANT INSERT, UPDATE, DELETE ON ON autores autores TO TO Maria, Maria, Juan Juan Permitir a María actualizar el importe del préstamo. GRANT UPDATE( importe importe )) ON ON prestamo TO TO Maria Maria Marta Zorrilla 2009-2010 132

REVOKE (1) Para denegar permisos a acciones. Su sintaxis es: REVOKE {{ ALL ALL instrucción [[,...n,...n]]}} FROM FROM {usuario [[,...n,...n]] role role [[,...n,...n] ]} } INSTRUCCIÓN INSTRUCCIÓN (entre (entre otras): otras): CREATE CREATE {{ DATABASE DATABASE DEFAULT DEFAULT FUNCTION FUNCTION PROCEDURE PROCEDURE RULE RULE TABLE TABLE VIEW VIEW }} ALTER ALTER {{ DATABASE DATABASE DEFAULT DEFAULT FUNCTION FUNCTION PROCEDURE PROCEDURE RULE RULE TABLE TABLE VIEW VIEW }} BACKUP BACKUP DATABASE DATABASE BACKUP BACKUP LOG LOG Marta Zorrilla 2009-2010 133

REVOKE (2) Para quitar permisos. Su sintaxis es: REVOKE [[ GRANT OPTION FOR FOR ]] {{ ALL ALL [[ PRIVILEGES ]] permiso [[,...n,...n]]}} {{ [[(( columna [[,...n,...n]]))] ] ON ON {{ tabla tabla vista vista }} ON ON {{ tabla tabla vista vista }}[[(( columna [[,...n,...n]]))] ] ON ON {{ procedimiento procedimiento_extendido }} ON ON {{ función} }} {{ TO TO FROM FROM }} {usuario [[,...n,...n]] role role [[,...n,...n]]}} [[ CASCADE ]] [[ AS AS {{ usuario usuario role role }}]] GRANT GRANT OPTION OPTION FOR FOR :: se se quita quita al al usuario usuario la la capacidad capacidad de de dar dar o o quitar quitar permisos permisos que que le le fueron fueron concedidos concedidos por por la la cláusula cláusula WITH WITH GRANT GRANT OPTION OPTION permiso: permiso: SELECT, SELECT, INSERT, INSERT, DELETE, DELETE, UPDATE, UPDATE, REFERENCES, REFERENCES, EXECUTE, EXECUTE, CREATE, CREATE, etc. etc. CASCADE CASCADE :: se se quita quita el el permiso permiso al al usuario/role usuario/role y y a a los los usuarios/roles usuarios/roles a a los los que que dio dio permiso, permiso, si si se se le le concedió concedió GRANT GRANT OPTION. OPTION. AS AS :: usuario usuario o o role role que que quita quita el el permiso permiso Marta Zorrilla 2009-2010 134

Ejemplos REVOKE Impedir a los usuarios Maria y Marta crear vistas en la BD activa. REVOKE CREATE VIEW VIEW TO TOMaria, [Servidor\Marta] Impedir que María ejecute la función dameprecio. REVOKE SELECT ON ON dbo.dameprecio TO TO Maria Maria Marta Zorrilla 2009-2010 135

Permisos efectivos Marta Zorrilla 2009-2010 136

A tener en cuenta SQL Server establece el rol PUBLIC a todos los usuarios de la BD. Para aquellos usuarios que no tienen cuenta en la BD, pero sí acceso al gestor, pueden conectarse a la BD como GUEST, si este usuario está habilitado en ella (GRANT CONNECT TO GUEST). Se ha de tener cuidado respecto a la manera en que se establecen las autorizaciones, si se quiere garantizar que luego se puedan quitar. U1 U5 Admon U2 U4 U3 Marta Zorrilla 2009-2010 137

Limitaciones de seguridad No se puede establecer privilegios a nivel de fila (p. ej. cada alumno sólo vea sus notas) Hay extensiones para proporcionar control de acceso en el nivel de las filas y para trabajar con gran número de usuarios pero aún no están normalizadas. Utilizar vistas para restringir la información. Establecer la seguridad en aplicaciones de BD: - Usuarios Usuarios de domino / de gestor con sus privilegios Usuarios de dominio / de gestor con rol de aplicación Usuario único con privilegios - Crear BD de seguridad donde se establece con detalle las acciones que cada usuario de aplicación puede hacer Código de aplicación se entremezcla con el de autorización Más difícil de garantizar la existencia de agujeros de seguridad Marta Zorrilla 2009-2010 138

Estrategias de seguridad Marta Zorrilla 2009-2010 139

Estrategias de seguridad (y 2) Marta Zorrilla 2009-2010 140