Вы находитесь на странице: 1из 22

Usuarios, Roles,

Encriptación
Creación de un nuevo Usuario
Como crear un Usuario con código.
1)Se crea el inicio de sesión.
CREATE LOGIN Prueba WITH PASSWORD = 'Passwd‘
Crea un usuario de base de datos para el inicio de sesión creado
anteriormente.
CREATE USER Prueba FOR LOGIN Prueba;
Roles SQL Server
• Cada rol agrupa un conjunto de permisos
• Facilitan la administració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 servidor
Roles a nivel de servidor
Rol Descripción
sysadmin Los miembros del rol fijo de servidor sysadmin pueden realizar
cualquier actividad en el servidor.
serveradmin Los miembros del rol fijo de servidor serveradmin pueden cambiar las
opciones de configuración del servidor y apagarlo.
securityadmin Los miembros del rol fijo de servidor securityadmin administran los
inicios de sesión y sus propiedades. Administran los permisos de
servidor GRANT, DENY y REVOKE. También pueden administrar los
permisos de nivel de base de datos GRANT, DENY y REVOKE si tienen
acceso a una base de datos. Asimismo, pueden restablecer las
contraseñas para los inicios de sesión de SQL Server.

processadmin Los miembros del rol fijo de servidor processadmin pueden finalizar los
procesos que se ejecuten en una instancia de SQL Server.

setupadmin Los miembros del rol fijo de servidor setupadmin pueden agregar y
quitar servidores vinculados.
bulkadmin Los miembros del rol fijo de servidor bulkadmin pueden ejecutar la
instrucción BULK INSERT.
Roles a nivel de servidor

Rol Descripción

diskadmin El rol fijo de servidor diskadmin se usa para administrar archivos


de disco.
dbcreator Los miembros del rol fijo de servidor dbcreator pueden crear,
modificar, quitar y restaurar cualquier base de datos.
public 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.
Roles a nivel de Base de Datos
Rol Descripción
db_owner Los miembros del rol fijo de base de datos db_owner pueden
realizar todas las actividades de configuración y mantenimiento en
la base de datos y también pueden quitar la base de datos.
db_securityad Los miembros del rol fijo de base de
min datos db_securityadmin pueden modificar la pertenencia a roles y
administrar permisos. Si se agregan entidades de seguridad a este
rol, podría habilitarse un aumento de privilegios no deseado.

db_accessad Los miembros del rol fijo de base de


min datos db_accessadmin pueden agregar o quitar el acceso a la base
de datos para inicios de sesión de Windows, grupos de Windows e
inicios de sesión de SQL Server.
db_backupop Los miembros del rol fijo de base de
erator datos db_backupoperator pueden crear copias de seguridad de la
base de datos.
Roles a nivel de Base de Datos
Rol Descripción
db_ddladmin Los miembros del rol fijo de base de datos db_ddladmin pueden
ejecutar cualquier comando del lenguaje de definición de datos
(DDL) en una base de datos.
db_datawriter Los miembros del rol fijo de base de datos db_datawriter pueden
agregar, eliminar o cambiar datos en todas las tablas de usuario.

db_datareade Los miembros del rol fijo de base de datos db_datareader pueden
r leer todos los datos de todas las tablas de usuario.

db_denydata Los miembros del rol fijo de base de datos db_denydatawriter no


writer pueden agregar, modificar ni eliminar datos de tablas de usuario
de una base de datos.
db_denydatar Los miembros del rol fijo de base de datos db_denydatareader no
eader pueden leer datos de las tablas de usuario dentro de una base de
datos.
Roles definidos por el usuario
• Agrupan un conjunto de permisos
• No tienen permisos predefinidos
• Los permisos se establecen por:
• Pertenencia a otros roles
• Permisos de sentencias
• Permisos específicos de objetos
• Pueden ser:
• Rol estándar
• Rol de aplicación: establecer permisos a una aplicación
sobre la BD
• Los pueden gestionar: sysadmin, propietario de BD,
db_owner, db_securityadmin
Crear un Rol con Código

• CREATE ROLE compradores AUTHORIZATION Prueba;

• Asignar un Rol a un Usuario.

• sp_addrolemember compradores,Prueba
Restricción de Usuario (Permisos)
Restricción de Usuario (Permisos)
con código
• Permitir a un usuario crear una base de datos y tablas.
• GRANT CREATE TABLE TO Prueba

• Permitir a un usuario Insertar, modificar y eliminar registros de una tabla.


• GRANT INSERT, UPDATE, DELETE ON dbo.authors TO Prueba
Restricción de Usuario (Permisos)
con código
• Permitir a un usuario actualizar un único campo de una tabla.
• GRANT UPDATE( phone ) ON dbo.authors TO Prueba
• Permitir a un usuario Insertar, modificar y eliminar registros de una tabla.
• GRANT INSERT, UPDATE, DELETE ON dbo.authors TO Prueba
Restricción de Usuario (Revocar
Permisos) con código
• Impedir que el usuario pueda crear vistas de una tabla.
REVOKE CREATE VIEW TO Prueba
• Impedir que un usuario pueda eliminar.
REVOKE DELETE TO Prueba
Restricción de Usuario (Denegar
Permisos) con código
• Denegar a un usuario el permiso de seleccionar.
DENY SELECT TO Prueba
• Denegar a un usuario el permiso de crear tablas.
DENY CREATE TABLE TO Prueba

• Con el procedimiento sp_helprotect se puede observar los objetos y sus


permisos
Encriptación de datos
• ¿para qué?
• Evitar acceso a datos sensibles
• Evitar robo de copias de seguridad con datos sensibles
• ¿qué técnicas?
• Encriptación a nivel de columna
• Encriptación transparente (TDE) (afecta a toda la BD)
• ¿coste?
• Mayor sobrecarga y puede afectar al rendimiento
• Requiere una estrategia para la definición y mantenimiento de
claves, passwords y certificados
• Por ello no debe considerarse para todos los datos y conexiones
Encriptación de datos

• Encriptación a nivel de columna


• Mediante certificados, keys o frases
• Requiere el uso de funciones específicas
• Symmetric Key
• Certificate
• EncrypyPassphrase
Encriptación de datos

• Encriptación a nivel de columna


• Encriptación transparente (TDE), afecta a toda la BD
• No protege las comunicaciones entre aplicación cliente
y servidor
• No encripta FILESTREAM.
• No impide al DBA ver los datos.
• Puede caer el rendimiento si conviven BD TDE y sin
encriptar.
Encriptación de datos. Ejemplo
• Encriptar un registro de una tabla.

• select EncryptByPassPhrase(direccion,'PassWord')
FROM dbo.tblClientes
Encriptación de datos. Ejemplo
• Insertar un registro encriptado.

• 1) Crear la Tabla

create table Usuarios


(idUsuario int primary key identity,
username varchar(10),
clave varbinary(100))
Encriptación de datos. Ejemplo
• Insertar un registro encriptado.

• 2)Insertar los registros

insert into usuarios(username,clave)


values('smith',EncryptByPassPhrase('12','XXX')),
('kennal',EncryptByPassPhrase('12','YYY')),
('staurt',EncryptByPassPhrase('12','ZZZ'))
Encriptación de datos. Ejemplo
• Insertar un registro encriptado.

• 3) Verificar Encriptación.

• select * from Usuarios


Encriptación de datos. Ejemplo
• Desencriptar los registros.

• select username,convert(varchar(10),
DECRYPTBYPASSPHRASE ('12',clave)) from Usuarios

Вам также может понравиться