Seguridades en SQL Server 2008

Published on July 2016 | Categories: Documents | Downloads: 31 | Comments: 0 | Views: 302
of 26
Download PDF   Embed   Report

sql server 2008, seguridad en base de datos

Comments

Content

Seguridades en SQL
Server 2008

Introducción
La seguridad en la gestión de bases de datos, es un tema muy amplio e
interesante, ya que se trata de la forma de establecer y normalizar
procedimientos para resguardar de buena manera la información de
toda organización que use un servidor SQL, para tener almacenados
sus datos.
Cabe indicar que para esta exposición se cuenta con un servidor basado
en SQL Server 2008, instalado en Windows 8 de 64 bits, 500 GB de
disco duro, 4 GB de RAM.

Aspectos básicos de seguridad
• Autentificación: Debemos identificar la identidad del usuario.
Esto quiere decir que tiene que éste tiene que haber sido creado
en el servidor basado en SQL Server 2008.
• Autorización: Permitir o no, acceder a un recurso o realizar una
determinada acción en función de la identidad del usuario.
• Integridad: Asegurar que la información no ha sido modificada
mediante su uso, a menos que le hayan sido dados los permisos
correspondientes a un usuario en particular. Por ejemplo: Firma
Digital.
• Privacidad: Asegurar que la información pueda ser visualizada
por el usuario destinatario. Por ejemplo: Cifrados.

Niveles de seguridad en SQL Server 2008
Los niveles de seguridad existentes en SQL Server 2008
son:
• Seguridad a través de Windows: con usuarios locales
de un equipo, usuarios de grupos y usuarios del
dominio.
• Seguridad a través de SQL Server. Existen en este caso
usuarios a nivel del motor SQL Server, así como Roles.
• Seguridad a nivel de BD. Cada base de datos podrá
especificar sus propios usuarios, roles de BD y de
aplicaciones que accedan a ella, así como grupos
aunque éste último tipo se mantiene sólo por tener
compatibilidad con versiones anteriores.

Podemos observar que existen dos carpetas de
seguridad: Una a nivel de servidor y otra a nivel de la
base de datos.
Cada base tiene una carpeta propia de seguridad donde
crean los usuarios que van a manipularla, establece los
permisos a cada usuario de la misma, los esquemas, etc.
Cada instancia (Se pueden instalar varias), posee esta
carpeta, que tiene como función controlar la
administración del servidor como tal, estableciendo
permisos para el o los administradores que puedan estar
a cargo de dicho servidor.
INSTANCIA: Una instancia de Motor de base de datos es una copia del ejecutable de sqlservr.exe que se
ejecuta como un servicio de sistema operativo. Cada instancia administra varias bases de datos del sistema y
una o varias bases de datos de usuario. Cada equipo puede ejecutar varias instancias de Motor de base de
datos. Las aplicaciones se conectan a la instancia para realizar el trabajo en una base de datos administrada
por la instancia. El nombre de la instancia predeterminada se lo proporciona por lo general, cuando se está
instalando por primera vez el SQL Server 2008 en un equipo adecuado que va a funcionar como nuestro
servidor.

Seguridad a nivel de Servidor
A nivel de la carpeta de Seguridad del servidor,
nos encontramos con varias carpetas anidadas,
que representan la manera de gestionar las
seguridades para nuestro servidor.

Inicios de Sesión
Los usuarios que se crean o pertenecen a los grupos de
ésta carpeta, por lo general, son los usuarios
administradores de los servidores donde se encuentran
alojados las bases de datos de una organización,
estableciéndose los permisos y privilegios para cada
usuario de este tipo.

Funciones o Roles de Servidor
Los roles de servidor son
utilizados
para
otorgar
privilegios de seguridad en todo
el servidor a un inicio de sesión.
Tienen asociados permisos que
sirven para realizar tareas, como
la
creación,
modificación,
borrado de una base de datos, o
la administración de inicios de
sesión de inicios de otros
usuarios y la modificación de sus
contraseñas.

Cada inicio de sesión de SQL Server pertenece al
rol de servidor public. Cuando a una entidad de
seguridad de servidor no se le han concedido ni
denegado permisos específicos para un objeto
protegible, el usuario hereda los permisos
concedidos al rol public para ese objeto. Solo
asigne permisos públicos en cualquier objeto
cuando desee que el objeto esté disponible para
todos los usuarios. No puede cambiar la
pertenencia en public.

Credenciales
Una credencial es un registro que
contiene la información de autenticación
(credenciales) necesaria para conectarse
a un recurso situado fuera de SQL
Server. Esta información es utiliza-da
internamente por SQL Server. La mayoría
de las credenciales incluyen un nombre
de usuario y una contraseña de
Windows.
Las credenciales del sistema se crean de
forma automática y se asocian a
extremos específicos. Los nombres de
las credenciales del sistema comienzan
por dos signos de número (##).

La información almacenada en una
credencial permite al usuario que se haya
conectado a SQL Server 2005 mediante
autenticación de SQL Server obtener acceso
a recursos situados fuera de la instancia de
servidor. Cuando el recurso externo es
Windows, el usuario se autentica como el
usuario de Windows especificado en la
credencial. Se puede asignar una única
credencial a varios inicios de sesión de SQL
Server. Sin embargo, un inicio de sesión de
SQL Server sólo se puede asignar a una
credencial.

Proveedores de Servicios Criptográficos
Los proveedores de servicios criptográficos
o de cifrado (CSP) se encargan de
administrar las claves de cifrado y de
utilizarlas para diversas operaciones
criptográficas.
Ejemplos:
Los Certificados SSL, que son pequeños
archivos
de
datos
que
vinculan
digitalmente una clave de encriptación con
los datos de una empresa.

Auditorías
Auditoría de una instancia de SQL Server o una base de datos de SQL Server implica
el seguimiento y registro de eventos que ocurren en el sistema. Basándose en la
información acumulada que sería capaz de rastrear los cambios en la base de
datos, el acceso a la base de datos, etc. Una auditoría es la combinación de varios
elementos en un solo paquete para un grupo específico de acciones de servidor o
base de datos de acciones. Los componentes de SQL Server Audit se combinan para
producir una salida que se llama una auditoría, así como una definición de informe
junto con los gráficos y elementos de datos produce un informe. Auditoría de SQL
Server utiliza extendido eventos para ayudar a crear una auditoría.
El objeto de SQL Server Audit recoge una sola instancia de servidor o base de datos
de las acciones a escala y los grupos de acciones para el seguimiento. La auditoría
es a nivel de la instancia de SQL Server. Usted puede tener múltiples auditorías por
cada instancia de SQL Server. Cuando se define una auditoría, se especifica la
ubicación de la salida de los resultados. Este es el destino de auditoría. La auditoría
se crea en un estado de movilidad reducida, y no de forma automática todas las
acciones de auditoría. Después de la auditoría está habilitada, el destino de la
auditoría recibe los datos de la auditoría.

Auditorias

La auditoría de una
instancia de Motor
de base de datos
de SQL Server o de
una
base
de
datos
individual
implica
el
seguimiento
y
registro de los
eventos que se
producen
en
Motor de base de
datos.

La auditoría de SQL Server permite crear
auditorías de servidor, que pueden contener
especificaciones de auditoría de servidor
para los eventos de servidor, y
especificaciones de auditoría de base de
datos para los eventos de base de datos. Los
eventos auditados se pueden escribir en los
registros de eventos o en los archivos de
auditoría.

Especificaciones de auditoría de servidor

Es posible tener varias auditorías por
cada instancia de SQL Server. El
objeto Especificación de auditoría de
servidor pertenece a una auditoría.
Puede crear una especificación de
auditoría de servidor por cada auditoría,
ya que ambos se crean en el ámbito de
la instancia de SQL Server.

Especificaciones de auditoría de servidor
El objeto de auditoría de servidor Especificación pertenece a una auditoría.
Puede crear una especificación de auditoría de servidor por la auditoría, ya
que ambos se crean en el alcance de la instancia de SQL Server. La
especificación de auditoría de servidor recoge servidor de muchos grupos de
acción a nivel nacional planteadas por el extendido Eventos característica.
Usted puede incluir a los grupos de acción de auditoría en una especificación
de auditoría de servidor. Los grupos de acción de auditoría son grupos
predefinidos de acciones, que son los eventos atómicos expuestos por el
motor de base de datos. Estas acciones son enviados a la auditoría, que
registra en el objetivo.
Servidor de auditoría de los grupos de nivel de acción se describe en el tema
de SQL Server Grupos de auditoría de acciones y acciones.

Seguridad a nivel de Bases de Datos

Como se muestra en la figura, por cada
base de
datos creada en nuestro
servidor, existirá una carpeta de
seguridad respectivamente.

La carpeta Seguridad es similar a la
carpeta Seguridad del Servidor, sin
embargo, el nivel de seguridad está
enfocado a dar los permisos de manera
equilibrada a cada usuario que por
medio de una aplicación necesitare
insertar, modificar o eliminar datos de
dicha base.

Usuarios
Logins y Users
Para conectarse al SQL Server, se necesita un Login (usuario a nivel del servidor).
A nivel de la base de datos, el usuario se identifica como un User que está relacionado generalmente
al Login (que es a nivel del servidor), y los privilegios al User existen solamente en el ámbito de la
base de datos (además a los privilegios al Login).
Para otorgar derechos generales puede asistirse con listas de Server Roles (roles a nivel del servidor) o
Database Roles (roles a nivel de la base de datos específica), cada cual con privilegios específicos a un
rol específico; y cada usuario asociado con uno de estos Roles obtiene los privilegios asociados con él.
Además, el administrador puede otorgar derechos specificos, y crear otros Database Roles (no se
puede crear Server Roles).
Los privilegios a nivel del servidor incluyen la capacidad de crear bases de datos, utilizar las tareas
(Jobs), crear respaldos de bases de datos y restaurarlos, modificar las definiciones del servidor, etc.
Los privilegios a nivel de la base de datos posibilitan extraer y actualizar datos, crear objetos como
procedimientos y tablas, utilizar dichos objetos, etc. Como regla general se puede otorgar derechos
(Grant), revocar privilegios existentes (Revoke), y denegar privilegios aún no existen (Deny).

Usuarios
Los usuarios dbo, guest, INFORMATION_SCHEMA
y sys, son creados en el momento de la instalación
del SQL.

dbo es una cuenta de usuario muy particular ya
que no puede ser utilizada para establecer
conexiones a la base de datos pero cuenta con
privilegios especiales. La cuenta dbo es especial
también porque es el dueño de la base de datos.
Además, gracias a que eres dbo, tienes todos los
permisos para hacer cualquier cosa en la base de
datos y hasta puedes también puedes asignarlos a
otras cuentas de usuario.

Funciones o Roles de Bases de Datos
Son fijos:
• No pueden modificarse sus permisos. Excepto el de Public.
• No pueden eliminarse.
• No pueden añadirse nuevos roles predefinidos.
• Los siguientes:
db_owner: realizan cualquier operación en la base de datos
db_backupoperator: realiza copias de seguridad
db_datareader: lee de cualquier tabla
db_datawriter: escribe en cualquier tabla
db_denydatawriter: no puede escribir en ninguna tabla
db_denydatareader: no puede leer de ninguna tabla
db_ddladmin: crea y modifica objetos en la base de datos
db_accessadmin: gestiona usuarios en la base de datos
db_securityadmin: gestiona los permisos

Para administrar con facilidad los permisos en las bases de datos, SQL Server
proporciona varios roles, que son las entidades de seguridad que agrupan a
otras entidades de seguridad. Son como los grupos del sistema operativo
Microsoft Windows. Los roles de nivel de base de datos se aplican a toda la
base de datos en lo que respecta a su ámbito de permisos.
Existen dos tipos de roles de nivel de base de datos en SQL Server: los roles
fijos de base de datos, que están predefinidos en la base de datos, y los roles
flexibles de base de datos, que pueden crearse.
Los roles fijos de base de datos se definen en el nivel de base de datos y
existen en cada una de ellas. Los miembros de los roles de base de
datos db_owner y db_securityadmin pueden administrar la pertenencia a
roles fijos de base de datos. Sin embargo, solo los miembros del rol de base de
datos db_owner pueden agregar miembros al rol fijo de base de
datos db_owner. También hay algunos roles fijos de base de datos con fines
especiales en la base de datos msdb.
Puede agregar cualquier cuenta de la base de datos y otros roles de SQL
Server a los roles de nivel de base de datos. Cada miembro de un rol fijo de
base de datos puede agregar otros inicios de sesión a ese mismo rol.

Esquemas
Un esquema es un contenedor que contiene tablas, vistas,
procedimientos, etc. Se encuentra dentro de una base de
datos, que a su vez está dentro de un servidor. Estas
entidades se acomodan como cajas anidadas. El servidor
es la caja más externa y el esquema la más interna.
Contiene toda la estructura de la base de datos.
Los esquemas sirven sobretodo para organizar los objetos,
y también la seguridad de la base de datos, especialmente
cuando se tiene varios usuarios. Si un usuario posee un
esquema, tiene por defecto permisos sobre los objetos de
ese esquema que no tendrán otros usuarios, a menos que
se les hayan concedido expresamente.

Claves Simétricas y Asimétricas
SQL Server usa claves de cifrado para proteger los datos, las
credenciales y la información de conexión que se almacena en
una base de datos servidor. SQL Server tiene dos tipos de
claves: simétricas y asimétricas. Las claves simétricas utilizan la
misma contraseña para cifrar y descifrar los datos. Las claves
asimétricas utilizan una contraseña para cifrar los datos
(denominada clave pública) y otra para descifrar los datos
(denominada clave privada).

Claves simétricas
Una clave simétrica es una clave que se utiliza para el
cifrado y el descifrado. El cifrado y el descifrado con una
clave simétrica son más rápidos y adecuados para usarlos
de forma rutinaria con datos confidenciales de una base
de datos.

Claves asimétricas
Una clave asimétrica se compone de una clave privada y su
correspondiente clave pública. Cada clave puede descifrar los
datos que cifra la otra. El cifrado y descifrado asimétricos
consumen una cantidad de recursos relativamente elevada, pero
proporcionan un nivel de seguridad superior al del cifrado
simétrico. Una clave asimétrica se puede utilizar para cifrar una
clave simétrica para almacenar en una base de datos.

Certificados
Un certificado es un objeto de seguridad firmado
digitalmente que contiene una clave pública (y
opcionalmente una privada) para SQL Server. Pueden
utilizarse certificados generados externamente o
generados por SQL Server.

Especificación de auditoría de BD
El objeto de auditoría de base de datos
especificación también pertenece a una
Auditoría de SQL Server. Puede crear una
especificación de auditoría de base de datos
por base de datos de SQL Server para la
auditoría. La especificación de auditoría de
base de datos de base de datos recoge las
acciones de auditoría de alto nivel planteada
por el extendido Eventos característica. Puede
agregar cualquiera de los grupos de auditoría
de la acción o los eventos de auditoría a una
especificación de auditoría de base de datos.
Los sucesos de auditoría son las acciones
atómicas que pueden ser auditados por el
motor de SQL Server. Los grupos de acción de
auditoría son grupos predefinidos de acciones.
Ambos se encuentran en el alcance de la base
de datos de SQL Server. Estas acciones son
enviados a la auditoría, que registra en el
objetivo. Base de datos de auditoría de los
grupos de nivel de acción y las acciones de
auditoría se describe en el tema de SQL Server
Grupos de auditoría de acciones y acciones.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close