You are on page 1of 15

MS SQL 2014 Administración

Clase 05

Juan Luis Herencia Guerra juanluis.herencia@gmail.com


Seguridad

MS SQL 2014 Implementacion - Juan Luis Herencia Guerra 2


MS SQL Server
Modos de Autenticación
Para poder trabajar con inicios de sesión de SQL Server debemos
cambiar la configuración por defecto de nuestro servidor, puesto que
está configurado para que inicialmente sólo se validen usuarios de
Windows. La validación mixta Windows/SQL Server es la que permite
acceso a usuarios autenticados en Windows (por tanto con acceso al
servidor SQL) y uuarios autenticados solamente en el servidor SQL.

MS SQL 2014 Administración - Juan Luis Herencia Guerra 3


MS SQL Server
Entidades de Seguridad
Entidades de seguridad a nivel de Windows
•Inicio de sesión del dominio de Windows
•Inicio de sesión local de Windows
Entidades de seguridad-de nivel de SQL Server
•SQL Server Inicio de sesión
•Rol del servidor
Entidades de seguridad de nivel de bases de
datos
•Usuario de la base de datos
•Rol de base de datos
•Rol de aplicación

MS SQL 2014 Administración - Juan Luis Herencia Guerra 4


MS SQL Server
Ámbitos
A Nivel de servidor
•Inicio de sesión
•Rol, Base de Datos,
A nivel de Base de Datos
•Usuario,
•Rol del servidor, rol de aplicación, servicio,
•Permisos para la creación de objetos (DML),etc.
A nivel de Esquema
•Tablas,
•Vistas,
•Procedimientos almacenados,
•Funciones, etc

MS SQL 2014 Administración - Juan Luis Herencia Guerra 5


MS SQL Server
Entidades de Seguridad

Para poder trabajar con inicios de sesión de SQL Server debemos cambiar la
configuración por defecto de nuestro servidor, puesto que está configurado para
que inicialmente sólo se validen usuarios de Windows. La validación mixta
Windows/SQL Server sería suficiente

MS SQL 2014 Administración - Juan Luis Herencia Guerra 6


MS SQL Server
Inicio de Sesion (Login)

Representa la conexión a la Instancia de SQL Server. Dicha conexión


debe validada por algún tipo de servidor de autenticación, de tal modo,
que podemos encontrar Inicios de Sesión de Windows (la validación
la realiza el Sistema Operativo, y representa al usuario contextual con el
que hemos iniciado sesión en Windows) e Inicios de Sesión de SQL
Server (la validación la realiza SQL Server, luego es el motor de base de
datos quién debe almacenar la contraseña -o su hash- y quién debe
validar al usuario).

MS SQL 2014 Administración - Juan Luis Herencia Guerra 7


MS SQL Server
Inicio de Sesion (Login)
Funciones de Servidor (Server Roles)

Un Inicio de Sesión definido en una Instancia puede pertenecer a


determinadas Funciones de Servidor (Server Roles) de dicha Instancia,
y cuya pertenencia suele conceder determinados privilegios en dicha
Instancia de SQL Server (ej: pertenecer a BULKADMIN permite poder
realizar cargas masivas en cualquier base de datos de la Instancia, siempre
que además se tengan permisos sobre la tabla de destino, claro).

MS SQL 2014 Administración - Juan Luis Herencia Guerra 8


MS SQL Server
Usuario de Base de Datos (User)
Ocurre que los objeto a los cuales habitualmente deseamos acceder
(procedimientos almacenados, tablas, etc.), se encuentran en una u otra
base de datos de la Instancia, es decir, no se encuentra definidos en la
Instancia como tal. Por ello, en cada Base de Datos a la que tengamos
que acceder deberemos de tener un Usuario (User).

MS SQL 2014 Administración - Juan Luis Herencia Guerra 9


MS SQL Server
Usuario de Base de Datos (User)
Habitualmente, se crea un Inicio de Sesión para una persona (o
aplicación) que necesite conectarse a SQL Server, y seguidamente se crea
un Usuario para ese Inicio de Sesión sobre la base de datos a la que se
desea conceder acceso, de tal modo, que si dicho Inicio de Sesión debe
de poder acceder a varias bases de datos, deberá tener un Usuario en
cada base de datos.

Un inicio de Sesión (Login) se define a nivel de Instancia


mientras que un Usuario se define a nivel de Base de Datos

MS SQL 2014 Administración - Juan Luis Herencia Guerra 10


MS SQL Server
Usuario de Base de Datos (User)
-- *** hacerlo miembro de dbcreator, y darle permisos
de lectura y escritura en AdventureWorks ***

CREATE LOGIN MyNewLogin


WITH PASSWORD = 'P@ssw0rd',
DEFAULT_DATABASE = AdventureWorks

EXEC sp_addsrvrolemember 'MyNewLogin', 'dbcreator‘

USE AdventureWorks

CREATE USER MyNewUser FOR LOGIN MyNewLogin


EXEC sp_addrolemember 'db_datareader', 'MyNewUser'
EXEC sp_addrolemember 'db_datawriter', 'MyNewUser'

MS SQL 2014 Administración - Juan Luis Herencia Guerra 11


MS SQL Server
Permisos
Al crear objetos de base de datos, se deben conceder permisos de forma
explícita para que los usuarios tengan acceso a ellos. Cada objeto
susceptible de protegerse tiene permisos que se pueden otorgar a una
entidad de seguridad mediante instrucciones de permiso.

Las tareas administrativas se realizan utilizando roles fijos del servidor y


el uso del rol fijo del servidor sysadmin es muy restringido.

Cuando conceda permisos a usuarios de base de datos, siga siempre el


principio de los privilegios mínimos. Otorgue a usuarios y roles los
mínimos permisos necesarios para que puedan realizar una tarea
concreta.

MS SQL 2014 Administración - Juan Luis Herencia Guerra 12


MS SQL Server
Permisos

Para asignar derechos

Para remover derechos


como GRANT o DENY

Para prevenir accesos

MS SQL 2014 Administración - Juan Luis Herencia Guerra 13


MS SQL Server
Permisos
La instrucción GRANT puede asignar permisos a un grupo o rol que
puede ser heredada por los usuarios de la base de datos. No obstante, la
instrucción DENY tiene prioridad sobre el resto de las instrucciones de
permiso. Por ello, un usuario al que se le ha denegado un permiso no
puede heredarlo de otro rol.

MS SQL 2014 Administración - Juan Luis Herencia Guerra 14


MS SQL Server

EJEMPLOS

MS SQL 2014 Administración - Juan Luis Herencia Guerra 15

You might also like