Gestionar el acceso a bases de datos SQL Server puede ser una tarea compleja, pero con la integración de grupos externos, podemos simplificar este proceso. En este artículo, te guiaré a través de los pasos para añadir grupos externos utilizando varios proveedores, desde Azure AD, LDAP, Okta, PingIdentity, Google Workspace.
1. Introducción
La autenticación externa en SQL Server permite la inclusión de grupos externos para controlar el acceso a tus bases de datos. A continuación, te presentaré cómo hacerlo utilizando diferentes proveedores.
2. Crear un Login Externo
En el servidor principal (MASTER), crea un login externo para representar al grupo en el servidor SQL:
CREATE LOGIN [GR_RedOrbita_BBDD_W] FROM EXTERNAL PROVIDER;
Este paso establece la conexión con el proveedor externo y prepara la base para la siguiente fase.
3. Asignar Usuario a la Base de Datos
Asigna un usuario de la base de datos al grupo recién creado.
CREATE USER [GR_RedOrbita_BBDD_W] FROM EXTERNAL PROVIDER;
Ahora que hemos asignado el grupo externo a nuestra base de datos, es esencial otorgar los permisos adecuados para asegurar un acceso controlado a los recursos específicos de dicha base de datos. A continuación, te mostramos cómo realizar este proceso:
- Permiso
db_datareader
: Este permiso otorga al grupo la capacidad de realizar lecturas en la base de datos. Es útil cuando se necesita permitir el acceso a datos sin la posibilidad de realizar modificaciones.
EXEC sp_addrolemember 'db_datareader', 'GR_RedOrbita_BBDD_W';
- Permiso
db_datawriter
: Al asignar este permiso, el grupo adquiere la capacidad de realizar modificaciones en la base de datos, como insertar, actualizar y eliminar datos.
EXEC sp_addrolemember 'db_datawriter', 'GR_RedOrbita_BBDD_W';
- Permiso
db_executor
: Este permiso permite al grupo ejecutar procedimientos almacenados y funciones en la base de datos, ofreciendo flexibilidad en términos de ejecución de lógica de negocio.
EXEC sp_addrolemember 'db_executor', 'GR_RedOrbita_BBDD_W';
- Permiso
db_ddladmin
: Otorgar este permiso confiere al grupo la capacidad de realizar cambios en la estructura de la base de datos, como la creación o eliminación de tablas y vistas.
EXEC sp_addrolemember 'db_ddladmin', 'GR_RedOrbita_BBDD_W';
Ahora que hemos asignado el grupo externo a nuestra base de datos y otorgado los permisos necesarios, es crucial verificar que los permisos se hayan aplicado correctamente. Puedes utilizar la siguiente consulta para comprobar los roles a los que el grupo pertenece:
SELECT
r.name AS RoleName
FROM
sys.database_principals u
INNER JOIN
sys.database_role_members m ON u.principal_id = m.member_principal_id
INNER JOIN
sys.database_principals r ON m.role_principal_id = r.principal_id
WHERE
u.name = 'GR_RedOrbita_BBDD_W';
Esta consulta te proporcionará una lista de los roles a los que pertenece el grupo externo en la base de datos. Al revisar los resultados, asegúrate de que los roles asignados coincidan con los permisos que has otorgado previamente. De esta manera, garantizamos una implementación exitosa de los permisos y un acceso controlado a los recursos de la base de datos por parte del grupo externo.
4. Conclusiones
La inclusión de grupos externos en SQL Server se revela como un componente esencial para una gestión eficiente del acceso a tus bases de datos. Los pasos y ejemplos proporcionados aquí facilitan la integración fluida de grupos externos, aprovechando la flexibilidad ofrecida por diversos proveedores.
Es imperativo que, al implementar estos procedimientos, consultes detenidamente la documentación específica de tu proveedor. Esto te permitirá obtener detalles adicionales y ajustar la configuración según las particularidades de tu entorno. No olvides adherirte a las mejores prácticas de seguridad durante todo el proceso para garantizar un entorno robusto y protegido.
:wq!