Download Descargar

Document related concepts

Microsoft SQL Server wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Null (SQL) wikipedia , lookup

Tabla (base de datos) wikipedia , lookup

Base de datos en memoria wikipedia , lookup

Transcript
UNIVERSIDAD LATINO
INGENIERIA EN SISTEMAS COMPUTACIONALES
Implementación y mantenimiento de base de datos
UNIDAD 3: Administración de bases de datos.
TEMA: Implementando seguridad.
Actividad de Aprendizaje No. 15
Elaboró: ISC Adiel Ernesto Pacheco Mutul.
Instrucciones: Realice las siguientes actividades usando SQL Server 2008 y la base de datos
AdventureWorks2008.
NOTA: Utilize preferentemente una instalación de prueba de SQL Server, para no afectar sus
bases de datos en producción.
Guia Práctica Configurando Seguridad en SQL Server
PARTE A
1.
Crear una base de datos llamada “Demo”
2.
Dentro de la nueva base de datos cree una tabla llamada “Productos” con
los campos Id int, Descripcion varchar(100) y estatus bit.
PARTE B
Logins y Users
Logins están asociados a un servidor.
Users están asociados a una base de datos.
Realice las siguientes actividades:
1.
Crear un usuario de Windows llamado Maria
2.
Abrir el MS Management Studio
3.
Buscamos en el Explorador de Objetos, la Carpeta Security, Logins.
Aquí vamos a definir un nuevo Login, el cual tendrá acceso al Servidor pero no a
una base específica.
4.
Nuevo Login. Search. Escribimos el nombre de nuestro usuario “Maria”.
Comprobamos. Finalmente Aceptar
5.
Buscamos nuestra Base de Datos “Demo”. Folder Security. Folder Users.
Nuevo User.
6.
Aquí vamos a definir el nombre del User, que puede ser o no el mismo del
Login. Escribimos Maria y buscamos el Login equivalente. Click en OK
7.
Iniciemos sesión de Windows con el Login Maria.
8.
Verifiquemos que no tenemos acceso a otras bases más que a “Demo”,
adicional no podemos visualizar ninguna Tabla, solo vistas, pero al ejecutarla nos
regresaran 0 Registros.
9.
Regresemos a la sesión de Administrador y asignemos Roles al User
Maria. Vamos a la Base de Datos “Demo”. Users y buscamos a “Maria”.
Asignaremos db_datareader y db_datawriter.
10.
Nuevamente regresamos a la sesión de Windows “Maria”. Y verificamos
los cambios. Podemos ver las Tablas. Y Podemos hacer consulta de búsqueda e
inserción de datos.
11.
En la sesión Administrador. Buscamos el user “Maria” y vamos a la
sección Securables.
Los Securables o “Asegurables” nos van a dar la opción de asignar permisos al
usuario a determinados objetos y determinadas acciones.
12.
En securables seleccionamos Search, “All Objects of the types”,
“Tables”. Por ejemplo: Para tabla Productos definimos que no tendra permisos
para borrar.
13.
Regresamos a la sesion “Maria” y verificamos esta acción. Para ello realice
un SELECT sobre la tabla productos, un INSER INTO y un DELETE, configure los
permisos para que la cuenta únicamente tenga bloqueda la opción “DELETE” y
pueda realizar las otras consultas.
PARTE C
Lea los siguientes conceptos, y dispóngase a discutirlos en clase.
Roles
Cuando hablamos de Roles en SQL Server, tenemos 2 Categorías:
Level Role y DataBase-Level Role
Server-
Función de nivel de Descripción
servidor
sysadmin
Pueden realizar cualquier actividad en el servidor.
serveradmin
Pueden cambiar las opciones de configuración en el servidor
y cerrar el servidor.
securityadmin
processadmin
setupadmin
bulkadmin
diskadmin
dbcreator
public
Administran los inicios de sesión y sus propiedades.
Administran los permisos de servidor GRANT, DENY y
REVOKE. También administran los permisos de base de
datos GRANT, DENY y REVOKE. Asimismo, pueden
restablecer las contraseñas para los inicios de sesión de SQL
Server.
Pueden finalizar los procesos que se ejecutan en una
instancia de SQL Server.
Pueden agregar y quitar los servidores vinculados.
Pueden ejecutar la instrucción BULK INSERT.
Se utiliza para administrar archivos de disco.
Pueden crear, modificar, quitar y restaurar cualquier base de
datos.
Cada inicio de sesión de SQL Server pertenece a la función
pública de servidor. 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 a la función pública para ese elemento.
Solo asigne los permisos públicos en cualquier objeto cuando
desee que el objeto esté disponible para todos los usuarios.
Database-level Role
Descripción
Función de nivel de
base de datos
db_owner
db_securityadmin
db_accessadmin
db_backupoperator
db_ddladmin
db_datawriter
db_datareader
db_denydatawriter
Pueden realizar todas las actividades de configuración y
mantenimiento en la base de datos y también pueden quitar
la base de datos.
Pueden modificar la pertenencia a funciones y administrar
permisos. Si se agregan entidades de seguridad a esta
función, podría habilitarse un aumento de privilegios no
deseado.
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.
Pueden crear copias de seguridad de la base de datos.
Pueden ejecutar cualquier comando del lenguaje de
definición de datos (DDL) en una base de datos.
Pueden agregar, eliminar o cambiar datos en todas las
tablas de usuario.
Pueden leer todos los datos de todas las tablas de usuario.
No pueden agregar, modificar ni eliminar datos de tablas de
db_denydatareader
usuario de una base de datos.
No pueden leer datos de las tablas de usuario dentro de
una base de datos.
PARTE D
Schemas
Los esquemas facilitan un espacio de nombres (namespace), por lo que también
nos permitirán organizar y agrupar nuestros objetos y también facilitan la
configuración de seguridad (GRANT, DENY, REVOKE) al poder conceder
permisos sobre todos los objetos contenidos en un esquema mediante una única
instrucción.
1.
Crear dos esquemas
CREATE SCHEMA VENTAS
GO
CREATE SCHEMA RH
2.
Crear Tablas y asignárselas al esquema RH
CREATE TABLE [RH].[Beneficios](
[abc] [int] NULL
)
GO
CREATE TABLE [RH].[Deducciones](
[abc] [int] NULL
)
GO
CREATE TABLE [RH].[Empleado](
[abc] [int] NULL )
3.
Transferir el Esquema Ventas a la Tabla Clientes
ALTER SCHEMA Ventas TRANSFER dbo.clientes
4.
Crear una nueva tabla llamada Flores y que pertenezca al esquema
ventas. Luego realizar la importación de datos desde un archivo CSV dado por
medio de la sentecia BULK.
CREATE TABLE [Ventas].[Flores](
FlorID varchar(10) ,
Nombre varchar(50) NULL,
ColorPrimario varchar(50) NULL,
ColorSecundario varchar(50) NULL,
Medida varchar(50) NULL,
Temperatura varchar(50) NULL,
Costo smallmoney NULL,
Precio smallmoney NULL,
StockMinimo varchar(50) NULL,
ProximaCompra varchar(50) NULL,
Descripcion varchar(150) NULL)
GO
BULK
INSERT Ventas.Flores
FROM 'c:\SQLServer\DatosFlores.csv'
WITH
( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' )
GO
5.
Creamos e Logins llamados: Vendedor, RecursosHumanos y
AdminDemo. Con Autenticacion SQL Server. Password: 123. Quitamos “Enforce
Policy Password” para que nos deje guardar la contraseña sencilla. En todos los
casos ponemos por defecto la base de “Demo”
6.
En User Mapping, seleccionamos la base “Demo” y buscamos el schema y
asignamos al usuario correspondiente. En el caso de AdminDemo no le
asignamos uno específico porque tendrá accesos a muchos.
7.
Ahora vamos crear un Rol para Ventas, V_VENTAS,
V_RECURSOSHUMANO y asignarlo por esquema y a cada usuario.
En la carpeta Security. Roles. DataBase Roles.
8.
Para el usuario AdminDemo vamos a editar el rol db_owner y agregamos el
usuario a este Rol.
9.
Ahora vamos a probar a cada usuario con un nueva conexión de sql por
cada uno de ellos y ver las diferencias. Podremos ver que cada usuario solo tiene
acceso a la base Demo, y específicamente a las tablas de su esquema.