Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos

La seguridad es una preocupación importante para los administradores de bases de datos SQL Server, ya que la mayoría de las bases de datos tienen varios usuarios que visualizan y acceden a los datos. Un administrador inteligente aprovechará al máximo los roles de seguridad de SQL Server, los cuales otorgan y niegan permisos a grupos de usuarios, reduciendo en gran medida la carga de trabajo en cuanto a seguridad.

Índice de Contenido
  1. Determinando quién necesita ver y modificar los datos
  2. Beneficios de usar roles de seguridad
  3. Tipos de roles
  4. Asignación de roles
  5. Método alternativo para asignar un rol predefinido
  6. Creando un nuevo rol de base de datos
  7. Roles de servidor
  8. No es precisamente un juego de niños

Determinando quién necesita ver y modificar los datos

El primer paso para proteger los datos de su cliente es determinar qué usuarios necesitan ver qué datos y luego otorgar acceso solo a esos usuarios. Por ejemplo, un empleado de nómina probablemente visualiza las cifras de salario de todos los empleados de su empresa, mientras que los gerentes de equipos solo tienen acceso a los salarios de los miembros del equipo. Los empleados individuales no tienen necesidad de ver los salarios en absoluto.

También debe decidir qué usuarios pueden modificar los datos. Por ejemplo, aunque alguien en el departamento de cumplimiento pueda necesitar verificar la dirección de un cliente, es posible que solo desee permitir que un ejecutivo de cuenta o un empleado de entrada de datos especialmente capacitado cambie la dirección de esa cuenta.

Beneficios de usar roles de seguridad

Los roles son parte del modelo de seguridad escalonado:

  • Seguridad de inicio de sesión: Conexión al servidor
  • Seguridad de base de datos: Acceso a la base de datos
  • Objetos de la base de datos: Acceso a objetos individuales de la base de datos y a los datos

Primero, el usuario debe iniciar sesión en el servidor ingresando una contraseña. Una vez conectado al servidor, el acceso a las bases de datos almacenadas se determina mediante cuentas de usuario. Después de obtener acceso a una base de datos real, el usuario se limita a los datos que puede ver y modificar.

El principal beneficio de los roles es una gestión eficiente. Imagine un grupo de 1,000 usuarios que de repente necesitan ver o modificar nuevos datos. Usando la seguridad de Windows, simplemente selecciona un grupo de Windows existente y lo asigna a un rol de SQL Server, en lugar de modificar 1,000 cuentas de usuario. Para aclarar, los grupos de Windows consisten en usuarios con acceso a la red de Windows, pero los roles de SQL Server pertenecen estrictamente a SQL Server. Simplemente estás otorgando permisos a datos y objetos de SQL Server a usuarios válidos de Windows.

Cómo optimizar los registros de transacciones en Microsoft SQL Server

Tipos de roles

Los roles de servidor se mantienen por el administrador de base de datos (DBA) y se aplican a todo el servidor, no a un archivo de base de datos individual. El rol público establece los permisos predeterminados básicos para todos los usuarios. Cada usuario que se agrega a SQL Server se asigna automáticamente al rol público, no es necesario hacer nada al respecto. Los roles de base de datos se aplican a una base de datos individual.

Es posible que necesite crear sus propios roles, pero tiene acceso a varios roles de base de datos predefinidos:

  • db_owner: Los miembros tienen acceso total.
  • db_accessadmin: Los miembros pueden administrar grupos de Windows y inicio de sesión de SQL Server.
  • db_datareader: Los miembros pueden leer todos los datos.
  • db_datawriter: Los miembros pueden agregar, eliminar o modificar datos en las tablas.
  • db_ddladmin: Los miembros pueden ejecutar instrucciones de biblioteca de vínculos dinámicos (DLL).
  • db_securityadmin: Los miembros pueden modificar la membresía de roles y administrar permisos.
  • db_backupoperator: Los miembros pueden hacer copias de seguridad de la base de datos.
  • db_denydatareader: Los miembros no pueden ver datos dentro de la base de datos.
  • db_denydatawriter: Los miembros no pueden cambiar o eliminar datos en tablas o vistas.

Asignación de roles

Usemos SQL Server Enterprise Manager para agregar un grupo de Windows a un rol de base de datos de la base de datos Pubs (una base de datos de ejemplo que viene con SQL Server 2000). El primer paso es crear un inicio de sesión para los miembros del grupo Guests, para que puedan acceder a SQL Server. Para hacerlo:

  1. Inicie Enterprise Manager y expanda la carpeta de seguridad.
  2. Haga clic derecho en el elemento Logins y elija New Login en el submenú resultante para abrir el cuadro de diálogo New Login que se muestra en Figura A. Tenga en cuenta que en este caso, la autenticación de Windows ya está seleccionada. Si no está seleccionada en su sistema, selecciónela. Utilizaremos el modo de autenticación de Windows en lugar del modo mixto de SQL Server. (El modo mixto comprende la seguridad de Windows y el propio modelo de seguridad de SQL Server. La autenticación de Windows es el modelo de seguridad recomendado al utilizar SQL Server).
Figura A
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 1 Newsmatic
Agregaremos un nuevo inicio de sesión a SQL Server.
  1. Haga clic en el botón a la derecha del control de Nombre para mostrar la ventana SQL Server Login Properties - New Login que se muestra en Figura B y seleccione el grupo de Windows adecuado, en este caso, utilizaremos el grupo Guests. Haga clic en el botón Agregar y luego en Aceptar para cerrar la ventana emergente SQL Server Login Properties - New Login.
Figura B
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 2 Newsmatic
Elija el grupo Guests.
  1. En la pestaña General, seleccione la base de datos Pubs en la lista desplegable Base de datos. La opción predeterminada es la base de datos Master, pero no debe otorgar acceso a esta base de datos, ya que administra la instalación de SQL Server.
  2. Haga clic en la pestaña Database Access para ver las bases de datos disponibles en el servidor actual.
  3. Debe seleccionar una base de datos predeterminada antes de que SQL Server habilite los roles de base de datos. Elija Pubs, como se muestra en Figura C. El rol público se asigna automáticamente (recuerde que le dije que sucedería eso). En este punto, podría elegir cualquiera de los roles. (Mostraré un método alternativo en la siguiente sección). Además, observe que el grupo Guests está listado en la columna Usuario.
Figura C
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 3 Newsmatic
Seleccione la base de datos de ejemplo Pubs de SQL Server.
  1. Haga clic en Aceptar para completar el proceso. Enterprise Manager mostrará el nuevo inicio de sesión en el panel derecho, como se muestra en Figura D. Ahora, todos los miembros del grupo Guests de Windows pueden iniciar sesión en SQL Server.
Figura D
Enterprise Manager muestra el nuevo inicio de sesión.

Método alternativo para asignar un rol predefinido

Podría haber agregado el grupo Guests a cualquiera de los roles enumerados para la base de datos Pubs en la última sección. En esta sección, le mostraré un método alternativo: agregar el grupo Guests al rol db_accessadmin dentro de la base de datos Pubs. Para ello:

  1. En Enterprise Manager, expanda la carpeta de Pubs.
  2. Haga doble clic en el elemento Roles.
  3. Haga doble clic en db_accessadmin en el panel derecho para abrir el cuadro de diálogo Propiedades de rol.
  4. Haga clic en el botón Agregar para mostrar una lista de usuarios y grupos. Elija Guest, como se muestra en Figura E, y haga clic en Aceptar.
Figura E
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 4 Newsmatic
Elija el inicio de sesión Guest.
  1. Figura F muestra el cuadro de diálogo Propiedades de rol de base de datos después de agregar el inicio de sesión Guest al rol db_accessadmin.
Figura F
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 5 Newsmatic
Agregamos el grupo Guests al rol db_accessadmin.
  1. Haga clic en Aceptar para completar la tarea.

En este punto, ha agregado el grupo Guests de Windows al inicio de sesión de SQL Server y ha asignado el grupo Guests al rol de base de datos db_accessadmin de la base de datos Pubs. Los miembros del grupo Guests ahora heredarán los permisos del rol db_accessadmin (que se detallan arriba) dentro de la base de datos Pubs.

Creando un nuevo rol de base de datos

Los roles predefinidos, como db_accessadmin, no siempre serán adecuados, pero puede crear nuevos roles. Agreguemos un nuevo rol llamado Compras:

Cómo utilizar la recursión en T-SQL para calcular el factorial - TechRepublic
  1. Regrese a Enterprise Manager y haga clic derecho en cualquier parte del panel derecho donde se muestren los roles de base de datos.
  2. Seleccione Nuevo rol de base de datos en el submenú resultante.
  3. Ingrese Compras como nombre del nuevo rol en el cuadro de texto Nombre y haga clic en el botón Agregar. Tenga en cuenta que el botón Permisos está deshabilitado. (Volveremos a eso más tarde.)
  4. Haga clic en el botón Agregar para asignar usuarios o grupos al rol. En este caso, agregamos el grupo Guests (consulte la Figura E). Como puede ver en Figura G, acabamos de crear un nuevo rol llamado Compras para la base de datos Pubs.
  5. Haga clic en Aceptar para salir del cuadro de diálogo.
Figura G
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 6 Newsmatic
Cree un nuevo rol llamado Compras.

Después de crear el nuevo rol Compras para la base de datos Pubs, debe definir lo que los usuarios asignados al rol Compras (a través del grupo Guests) pueden hacer en la base de datos Pubs. En este punto, estableceremos algunos permisos para el nuevo rol Compras:

  1. Vuelva a abrir el rol Compras que acaba de crear haciendo doble clic en él en el panel derecho de Enterprise Manager. El botón Permisos ahora estará habilitado.
  2. Haga clic en el botón Permisos para abrir el cuadro de diálogo Propiedades de rol de base de datos. Podemos establecer permisos en cada objeto de la base de datos Pubs. Por ejemplo, marque la opción ELIMINAR junto a la tabla Autores, como se muestra en Figura H, para que todos los miembros de este rol (miembros del grupo Guests) puedan eliminar registros de la tabla Autores.
  3. ¿Notó que al seleccionar la tabla Autores se habilitó el botón Columnas? Haga clic en ese botón ahora para ver el cuadro de diálogo Permisos de columna. Dentro de la tabla, podemos limitar el acceso a columnas individuales. En realidad, no estableceremos permisos a nivel de columna, así que simplemente haga clic en Aceptar dos veces para agregar el permiso de ELIMINAR al rol Compras. En este momento, los miembros de todos los grupos asignados al rol Compras podrían eliminar datos de la tabla Autores de Pubs. Actualmente, eso es solo para los miembros del grupo Guests.
Figura H
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 7 Newsmatic
Agregue permisos de ELIMINAR al rol Compras.

Roles de servidor

Los roles de servidor son muy amplios (ver la lista anterior) y, como regla general, probablemente no asignará usuarios a ninguno de los roles de servidor. Utilice discreción al asignar roles de servidor, ya que se aplican a toda la instancia de SQL Server, no solo a bases de datos individuales. Los roles de servidor generalmente están reservados para administradores de bases de datos y del servidor.

Puede asignar usuarios a un rol de servidor de dos maneras: utilizando el Enterprise Manager o el Query Analyzer. Para agregar la cuenta Guest al rol Creadores de bases de datos utilizando Enterprise Manager:

  1. Expanda la carpeta de Seguridad.
  2. Haga doble clic en el elemento Roles de servidor.
  3. Haga doble clic en Creadores de bases de datos en el panel derecho.
  4. Para seleccionar un grupo de Windows para el rol, haga clic en el botón Agregar para abrir el cuadro de diálogo Agregar miembros.
  5. Seleccione el grupo de Windows Guest y haga clic en Aceptar para cerrar el cuadro de diálogo y agregar el grupo Guest al cuadro de diálogo Propiedades del rol de servidor que se muestra en Figura I.
Figura I
Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos - Gestión de datos | Imagen 8 Newsmatic
Agregue Guest al rol Creadores de bases de datos.
  1. Tenga en cuenta que hay dos pestañas disponibles. Utilice la pestaña General para asignar un inicio de sesión al rol; utilice la pestaña Permisos para elegir los comandos SQL que el rol de servidor puede ejecutar.
  2. Haga clic en Aceptar para completar el proceso.

Para utilizar el Query Analyzer, ejecute el siguiente procedimiento almacenado del sistema, donde name identifica al usuario y role es uno de los roles enumerados anteriormente:
Exec sp_addserverrolemember name, role

Por ejemplo, la siguiente declaración agregaría a Martin Reid al rol SysAdmin:
Exec sp_addserverrolemember “Martin Reid”, “SysAdmin”

No es precisamente un juego de niños

Los datos son un activo: tienen un valor monetario para la mayoría de las empresas y deben protegerse. La autenticación de Windows simplifica el proceso de agregar roles a sus bases de datos de SQL Server. No es un juego de niños, pero Windows puede ayudarlo a administrar una instancia de SQL Server. Familiarícese con la seguridad de SQL Server y de Windows antes de intentar utilizar roles.

Cómo crear un formulario de entrada de datos en Microsoft Access

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Gestión de datos, allí encontraras muchos artículos similares a Cómo utilizar roles de seguridad en SQL Server para proteger tus bases de datos , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.