Logins y Users
Logins están asociados a un servidor.
Users están asociados a una base de datos
Guia Práctica
Guia Práctica
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 accion.
Roles
Cuando hablamos de Roles en SQL Server, tenemos 2 Categorías: Server-Level Role y DataBase-Level Role
Función de nivel de servidor | Descripción |
sysadmin | Pueden realizar cualquier actividad en el servidor. |
serveradmin | Pueden cambiar las opciones de configuración en el servidor y cerrar el servidor. |
securityadmin | 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. |
processadmin | Pueden finalizar los procesos que se ejecutan en una instancia de SQL Server. |
setupadmin | Pueden agregar y quitar los servidores vinculados. |
bulkadmin | Pueden ejecutar la instrucción BULK INSERT. |
diskadmin | Se utiliza para administrar archivos de disco. |
dbcreator | Pueden crear, modificar, quitar y restaurar cualquier base de datos. |
public | 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
Función de nivel de base de datos | Descripción |
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_securityadmin | 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. |
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_backupoperator | Pueden crear copias de seguridad de la base de datos. |
db_ddladmin | Pueden ejecutar cualquier comando del lenguaje de definición de datos (DDL) en una base de datos. |
db_datawriter | Pueden agregar, eliminar o cambiar datos en todas las tablas de usuario. |
db_datareader | Pueden leer todos los datos de todas las tablas de usuario. |
db_denydatawriter | No pueden agregar, modificar ni eliminar datos de tablas de usuario de una base de datos. |
db_denydatareader | No pueden leer datos de las tablas de usuario dentro de una base de datos. |
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.
No hay comentarios:
Publicar un comentario