sql server - seguridad
TRANSCRIPT
-
8/9/2019 SQL Server - Seguridad
1/84
SQL Server
Seguridad
-
8/9/2019 SQL Server - Seguridad
2/84
Modo de autentificacin
el modo de autentificacin es la manera en
que Sql Server procesa
no
mbres de usuario
contraseas
Sql nos ofrece dos modos
Autentificacin de Windows
Modo mixto
-
8/9/2019 SQL Server - Seguridad
3/84
Modo autentificacin de Windows
el usuario inicia sesin en el dominio de
Windows
obtiene acceso a SQL Server mediante alprotocolo de seguridad Kerberos
-
8/9/2019 SQL Server - Seguridad
4/84
Ventajas Autentificacin Windows
los usuarios no tienen que recordar varios
nombres de usuario y contraseas
permite control ms frreo de la seguridad podemos aplicar las directivas de contraseas de
Windows
caducidad
longitud
historial
-
8/9/2019 SQL Server - Seguridad
5/84
Inconvenientes Autentificacin
Windows
slo las cuentas de Windows pueden abrir una
conexin de confianza en Sql Server
-
8/9/2019 SQL Server - Seguridad
6/84
Modo mixto
admite
Autentificacin Windows
autentificacin Sql Server
-
8/9/2019 SQL Server - Seguridad
7/84
Cmo actua
usuario se conecta a la red (Windows u otra)
usuario abre una conexin que NO es deconfianza con Sql Server
nombre usuario y contrasea diferente de lasutilizadas para obtener acceso a red
no confianza
SQL no encomienda al SO verificar contrasea
Sql comprueba nombre + contrasea con latabla syslogins
-
8/9/2019 SQL Server - Seguridad
8/84
Ventaja Modo mixto
cualquier puede acceder a Sql Server
Mac, Novell
segunda capa de seguridad entrada en red
entrada a Sql Server
-
8/9/2019 SQL Server - Seguridad
9/84
Configuracin modo de autentificacin
se suele configurar en el momento de
instalacin
una de las pocas cosas que no se pueden hacer
con T-Sql
-
8/9/2019 SQL Server - Seguridad
10/84
Pasos cambiar configuracin
autentificacin
Management Studio
Explorador objetos servidor boton derecho
P
ro
piedades pgina Seguridad seleccionas la Autentificacin de servidor
necesaria
-
8/9/2019 SQL Server - Seguridad
11/84
Inicios de sesin en Sql Server
un inicio de sesin en SQL Server permite a losusuarios el acceso a Sel Server en general.
NO a los recursos que Sql contiene
Bases de Datos
los miembros de las funciones fijas de servidor
sysadmin
securityadmin podemos crear uno de dos tipos de inicios de sesin
inicin sesin estandar
inicio sesin Windows
-
8/9/2019 SQL Server - Seguridad
12/84
Inicio de sesin estndar
solo clientes con cuentas Windows pueden
establecer conexiones de confianza con Sql
Server
clientes NO windows necesitan crear inicio
sesin estndar
se pueden crear inicios sesin estandar en modo
Windows
pero no se podrn utiizar
Sql Server utilizar las credenciales de Windows
-
8/9/2019 SQL Server - Seguridad
13/84
Crear inicio sesin estndar
Management Studio servidor panel
seguridad inicios de sesin bton derecho
nuevo inicio de sesin
Seleccionas Autentificacin Sql Server
Nombre: estandar1
Contrasea: clave1 (distinguen mayus y minus)
BD predeterminada: Tienda
-
8/9/2019 SQL Server - Seguridad
14/84
Pgina Asignacin de usuarios
activas BD Tienda
concedemos al usuario acceso a la BD predeterminada
Aceptar
tenemos el nuevo inicio de sesin de tipo
estndar en el Explorador de objetos
-
8/9/2019 SQL Server - Seguridad
15/84
hacemos otro inicio de sesin estandar pero
Pagina Asignacin de usuarios
NO activas ninguna BD despues creamos una cuenta de usuario de BD
te avisa que no tienes acceso a BD predeterminada.
luego se lo concedemos
-
8/9/2019 SQL Server - Seguridad
16/84
Probar inicios de sesin
Nueva consulta
Lista Autentificacin Autentificacin Sql Server
No
mbre usuario
: estandar1 Clave.
Acepta
entramos no??
-
8/9/2019 SQL Server - Seguridad
17/84
Inicio de sesin de Windows
crear inicios de sesin de windows es similar
los inicios de sesin estandar se aplican a un solo
usuario
inicio de sesin de Windows se pueden asignar
a un solo usuario
a un grupo de Windows que ha creado un
administrador
loms habitual
un grupo integrado de Windows
administradorespor ejemplo
-
8/9/2019 SQL Server - Seguridad
18/84
Pasos crear inicios sesin Windows
primero debes crear cuentas de usuario en el
SO
Inicio Programas Herramientas administrativas
Usuarios y equipos de Active Directory
Accin Crear nuevo Usuario
si no tenemos acceso a un dominio
Administracin equipos en Usuarios locales y grupos
-
8/9/2019 SQL Server - Seguridad
19/84
Nombre:usuario1
Descripcin: clase
contrasea:uno cambiar: desactivar
nunca caduca: activar
-
8/9/2019 SQL Server - Seguridad
20/84
tb creamos un grupo de seguridad de dominio
local llamado clase
en Usuarios y equipos de Active Directory
nuevo grupo
agregamos el usuario al grupo
podemos hacer ms grupos y ms usuarios
-
8/9/2019 SQL Server - Seguridad
21/84
Directivas
Inicio Panel control herramientas
administrativas
Directiva de seguridad local
expandimos y clic en Asignacin de derechos de
usuario
doble clic en inicio de sesin local Agregar
seleccionamos todos en grupos Agregar
-
8/9/2019 SQL Server - Seguridad
22/84
Crear inicio sesion Sql
Management Studio servidor Seguridad
inicios de sesin boton dcho nuevo inicio
de sesion
Nombre inicio de sesin: Sqldomain\clase
el nombre del grupo local creado antes
Sqldomain es el nombre de dominio
Estamos en autenficacin de windows BD predeterminada
la que quieras
-
8/9/2019 SQL Server - Seguridad
23/84
pagina Asignacin usuarios
activamos Asignar junto a la BD elegida
Acepta
repetimos para cada grupo local creado
solo tenemos clase
repetimos para cada usuario sin grupo
-
8/9/2019 SQL Server - Seguridad
24/84
Probar inicio de sesin Windows
debemos iniciar sesin como miembro de uno
de los grupos creados
cierra windows y conectar como el usuario
Nueva consulta
Autentificacin Windows
puedes hacer la consulta??
-
8/9/2019 SQL Server - Seguridad
25/84
Comn en inicio de sesin
BD predeterminada
cuando usuario se conecta a Sql server, se conecta
a BD predeterminada
si no se pone ninguna, ser master
-
8/9/2019 SQL Server - Seguridad
26/84
Funciones fijas del servidor
limitan la cantidad de acceso administrativo
que tiene un usuario una vez conectado a Sql
Server
hay ocho funciones del servidor
-
8/9/2019 SQL Server - Seguridad
27/84
Sysadmin
sus miembros pueden hacer cualquier tarea
en Sql Server
esta funcin es la nica para lo
sadministradores de BD
DBA
-
8/9/2019 SQL Server - Seguridad
28/84
Serveradmin
estos usuarios pueden cambiar opciones de
configuracin en el servidor
memoria usada en Sql
informacin a enviar
cerrar el servidor
-
8/9/2019 SQL Server - Seguridad
29/84
Setupadmin
pueden instalar rplicas
administrar procedimientos almacenados
extendido
s realizar acciones no nativas Sql Server
-
8/9/2019 SQL Server - Seguridad
30/84
Securityadmin
temas de seguridad
crear y eliminar inicios de sesin
leer registros auditoria
conceder permisos para crear BD
-
8/9/2019 SQL Server - Seguridad
31/84
Processadmin
Sql server es multitarea
sus miembros pueden terminar un proceso
-
8/9/2019 SQL Server - Seguridad
32/84
DBcreator
crear y hacer cambios en BD
-
8/9/2019 SQL Server - Seguridad
33/84
Diskadmin
administrar ficheros en disco
crear reflejos de BD
aadir dispositivos de seguridad
-
8/9/2019 SQL Server - Seguridad
34/84
Bulkadmin
pueden ejecutar BULK INSERT
permite importar datos a BD de Sql Server a partir
de ficheros de texto
-
8/9/2019 SQL Server - Seguridad
35/84
Asignar usuarios a funciones fijas del
servidor
Management Studio Seguridad y Funciones
de servidor
doble clic en funcin Sysadmin
se abre sus propiedades
Agregar Examinar
selecciona usuario
usuario sin funcin administrativa
usuario normal
-
8/9/2019 SQL Server - Seguridad
36/84
Ahora vamos a conceder a los usuarios acceso
a BD que residen en servidor SQl Server
debemos crear cuentas usuario de BD
-
8/9/2019 SQL Server - Seguridad
37/84
Creacin de cuentas de usuario de BD
ya tenemos acceso a Sql Server tb acceso administrativo
ahora acceso a otros recursos
Management Studio Bases de datos tu base de datos Seguridad Usuarios boton derecho nuevo usuario clic en boton en Nombre inicio de sesin
son los de inicio de sesin que hemos creado seleccionas uno
Esquema predeterminado dbo
Aceptar
-
8/9/2019 SQL Server - Seguridad
38/84
ya existen dos cuentas de usuario en BD
dbo y guest
miembros de funcin fija del servidor sysadmin
se convierten automticamente en usuarios
propietarios de BD en todas las BD del sistema
DBO
as pueden realizar to
das las funcio
nes administrativasnecesarias en BD
aadir usuario
crear tablas..
-
8/9/2019 SQL Server - Seguridad
39/84
guest
cuenta usuario de BD general para personas con
inicio sesin Sql pero NO cuenta usuario BD
pueden conectarse a servidor
acceder a cualquier BD en la que NO tenga cuenta
de ususario
debemos limitar las funciones de cuenta guest
-
8/9/2019 SQL Server - Seguridad
40/84
podemos crear varios usuarios de BD y probar
los permisos
-
8/9/2019 SQL Server - Seguridad
41/84
Permisos
los objetos para los que SQl regula el acceso
se llaman asegurables
estos objetos se dividen en tres ambitos
ambito del servidor
ambito de BD
ambito de esquema
se protegen aplicando permisos
-
8/9/2019 SQL Server - Seguridad
42/84
Ambito de servidor
Servidor
inicio de sesion
sql server inicio sesin de Wdinows
-
8/9/2019 SQL Server - Seguridad
43/84
Ambito de BD
usuarios de BD
funciones de BD
funciones de aplicacin tipos de mensajes
servicio
eventos DDL
-
8/9/2019 SQL Server - Seguridad
44/84
ambito de esquema
Tabla
Vista
Funcion
Procedimiento
Cola
Tipo
Regla
.
-
8/9/2019 SQL Server - Seguridad
45/84
Permisos de instruccin
no tienen que ver con los datos concretos
permiten a los usuarios crear la estructura quecontiene los datos
Create Database Create Table
Create View
Create Procedure
Create Index
Create Rule
Create Default
-
8/9/2019 SQL Server - Seguridad
46/84
cuando se crea una BD
aade un registro a la tabla del sistema
sysdatabases
y se guarda en la bd master
la instruccin Create Database solo se puede
conceder para la BD master
-
8/9/2019 SQL Server - Seguridad
47/84
Pasos para permisos de instruccin
Sql Server tiene permisos asignados desde la
instalacin
debemos quitarlo para poder hacer pruebas
estos permisos estn en la funcin public
-
8/9/2019 SQL Server - Seguridad
48/84
Nueva consulta
USE
la base de dato
s REVOKE ALL from public
puedes guardar los cambios de esta consulta
nos puede servir despues.
ejecuta
-
8/9/2019 SQL Server - Seguridad
49/84
Servidor bases de datos tu base de datos boton derecho Propiedades paginaPermisos
a un usuario concede permisos de Create table
tb lo puedes hacer con grupo de usuarios
tb permisos de Backup DataBase y Backup DataBaseLog
tb podemos quitar permisos al usuario guest
-
8/9/2019 SQL Server - Seguridad
50/84
para probar hay que cerrar sesin de Windows yconectarnos como el usuario
prueba a hacer los permisos concedidos
USE tu base de datos
CREATE TABLE tabla1
(
campo1 varchar (5) not null,
campo2 varchar (25) not null,
)
-
8/9/2019 SQL Server - Seguridad
51/84
Permisos de objeto
Tras tener la estructura que contiene datos
permisos para trabajar con los datos
con permisos de objetos se controla quinpuede leer, escribir o manipular cualquier otro
modo de datos
-
8/9/2019 SQL Server - Seguridad
52/84
Tipos de permiso de objeto
Control
permiso que concede capacidades similares a la
propiedad sobre el objeto
jerarqua
si concedes permisoControl a un usuario en un
BD
tiene permiso control para todos los objetos de la BD tablas, vistas
-
8/9/2019 SQL Server - Seguridad
53/84
Alter
permite utilizar CREATE, ALTERo DROP
tb todos los objetos bajo su jerarqua
-
8/9/2019 SQL Server - Seguridad
54/84
Take Ownership
permite al usuario tomar propiedad de un objeto
Impersonate Permite que un inicio de sesin o usuario suplante
a otro
Create
permite crear objetos
-
8/9/2019 SQL Server - Seguridad
55/84
View Definition
permite a los usuarios ver la sintaxis T-Sql utilizadapara crear el objeto protegido
Select
permite leer datos de la tabla o vista
Insert, update, delete permite insertar, actualizar, eliminar nuevas filas en
una tabla
-
8/9/2019 SQL Server - Seguridad
56/84
References
las tablas se pueden vincular por una columna
comn con una relacin de clave externa
diseada para proteger los datos en varias tablas
en estos casos, este permiso permite al usuario
seleccionar datos de la tabla principal sin tener
permiso
Select en la tabla externa
-
8/9/2019 SQL Server - Seguridad
57/84
Execute
permite a los usuarios ejecutar procedimiento
almacenado al que se le aplica el permiso
-
8/9/2019 SQL Server - Seguridad
58/84
Aplicar permisos de objeto
Management Studio Bases de Datos tu base Tablas la tabla que quieras boton derecho Propiedades Pagina permisos agregas el usuario que quieras en Usuarios o
funciones concedemos permisos Select, insert, lo que quieras al
usuario que quieras
recuerda quitar permisos para guest
Aceptar cerrarManagement Studio y cerrar sesin Windows
volver a arrancar todo y probar
-
8/9/2019 SQL Server - Seguridad
59/84
podemos pues conceder permisos indivicuales
pero es ms facil utilizar funciones de BD para
aplicar permisos en bloque
-
8/9/2019 SQL Server - Seguridad
60/84
Funciones de BD
cuando varios usuarios necesitan permiso
para acceder a una BD
damos permiso como grupo
-
8/9/2019 SQL Server - Seguridad
61/84
Tipos de funciones de BD
fijas
personalizadas
de aplicacin
-
8/9/2019 SQL Server - Seguridad
62/84
Funciones fijas de BD
tienen permisos ya aplicados
solo tenemos que agregar usuarios a esas
funciones
estos usuarios heredan los permisos asociados
son diferentes de las funciones personalizadas de
BD
-
8/9/2019 SQL Server - Seguridad
63/84
db_owner
sus miembros pueden hacer todo lo que pueden
hacer los miembros de otras funciones adems de
algunas funciones administrativas
db_accessadmin
tiene autoridad para decir quin tiene a cceso a la
BD agregandoo quitando usuarios
-
8/9/2019 SQL Server - Seguridad
64/84
db_datareader
sus miebros pueden ller datos de cualquier tabla
de BD
db_darawriter
pueden aadir, cambiar y eliminar datos de todas
las tablas de la BD
-
8/9/2019 SQL Server - Seguridad
65/84
db_ddladmin
los administradores de lenguaje de definicin de
datos (DDL) pueden emitir todos los comandos
DDL crear, modficiar, cambiar objetos de la BD sin ver los
datos que contienen
-
8/9/2019 SQL Server - Seguridad
66/84
db_securityadmin
pueden agregar y quitar usuarios de las funciones
de BD
administrar permisos de instruccin y objeto
-
8/9/2019 SQL Server - Seguridad
67/84
db_bakupoperator
pueden realizar copias de seguridad de la BD
db_denydatareader
no pueden leer datos de la BD pero pueden hacer
cambios de esquema
aadir una columna a una tabla
-
8/9/2019 SQL Server - Seguridad
68/84
data_denydatawriter
no pueden hacer cambios en los datos de BD
tienen permiso para leer los datos
-
8/9/2019 SQL Server - Seguridad
69/84
Public
este grupo concede a los usuarios una serie de
permisos predeterminados en la BD
todos los usuarios de BD forman parte
automticamente de este grupo
no se pueden quitar de l
-
8/9/2019 SQL Server - Seguridad
70/84
Asignar funciones fijas de BD
Management Studio tu base Seguridad
funciones Funciones de BD
boton derecho en la que quieras Propiedades
Agregar para asignar usuarios a la funcin
Aceptar
-
8/9/2019 SQL Server - Seguridad
71/84
Abrir nueva consulta
Autentificacin
elegir usuario
l prueba
-
8/9/2019 SQL Server - Seguridad
72/84
las funciones fijas de Bd cubren muchas de las
situaciones que requieren asignar permisos a
los usuarios
no todas
-
8/9/2019 SQL Server - Seguridad
73/84
Funciones personalizadas de BD
tal vez necesitas unos permisos que no estn
entre las funciones fijas de BD
creamos una nueva funcin
le asignamos permisos
agregamos usuarios a esa funcin
lo
s usuario
s heredan lo
s permiso
s asignado
s ala funcin
-
8/9/2019 SQL Server - Seguridad
74/84
Crear funciones personalizadas de BD
Management Studio BD Seguridad y
Funciones Funciones de BD boton derecho
Nueva funcin de BD
nombre : ejemploselect
Propietario: dbo
Agregamos los usuarios que quieras
-
8/9/2019 SQL Server - Seguridad
75/84
Pagina Elementos
Agregar y Objetos especificos
Tipos de objeto: tablas
Examinar
activar casilla para la tabla que quieras
lista permisos explictios
seleccio
narCo
nceder junto
a Select Aceptar
ya se crea la funcin
-
8/9/2019 SQL Server - Seguridad
76/84
cierras todo . tb sesin windows
volvemos a iniciar Sesin
Nueva co
nsulta SELECT * from Customers
si fallasolo tiene permiso para hacer
insert..
-
8/9/2019 SQL Server - Seguridad
77/84
Funciones de aplicacin
indica si los usuarios pueden acceder a los
datos usando nicamente:
el inicio de sesin SQl
la cuenta de BD
y adems
deben usar la aplicacin adecuada
-
8/9/2019 SQL Server - Seguridad
78/84
Pasos
crear una funcin de aplicacin y asignar
permisos
los usuarios abren la aplicacin aprobada y se
conectan a Sql Server
para habilitar la funcin de aplicacin
la aplicacin ejecuta el procedimiento
sp_setapprole
-
8/9/2019 SQL Server - Seguridad
79/84
una vez habilitada la funcin de aplicacin
Sql Server ve a los usuarios como la aplicacin
les co
ncede permiso
s de funcin de aplicacin
-
8/9/2019 SQL Server - Seguridad
80/84
Crear funcin de aplicacin
Management Studio BD tu base
Seguridad funciones Funciones de
aplicacin boton derecho Nueva funcin
aplicacin
Nombre : aplicacin1
Esquema predeterminado: dbo
contrasea
-
8/9/2019 SQL Server - Seguridad
81/84
Pagina elemetnos
Agregar
Objetos especificos
Tipos de objeto tabla
Examinar - la tabla que quieras
Permisos
Conceder en select
-
8/9/2019 SQL Server - Seguridad
82/84
Nueva consulta
nos conectamos con Autentificacin Sql Server
nombre y clave anteriores
hacemos un Select
puede fallar si el usuario no tiene permisos Selct por
pertenecer a funcion BD db_denydatareader
-
8/9/2019 SQL Server - Seguridad
83/84
Activamos la funcin de aplicacin
ejecuta la consulta
sp_setapprole @rolenome=aplicacion1,
@password=`tu clave`
ahora intenta ejecutar la consulta select
Sql considera como funcion1
-
8/9/2019 SQL Server - Seguridad
84/84
Estados de los permisos