Administración del acceso al clúster de macrodatos en el modo de Active Directory
Se aplica a: SQL Server 2019 (15.x)
Importante
El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.
En este artículo se describe cómo agregar nuevos grupos de Active Directory con roles bdcUser además de los proporcionados durante la implementación a través de la opción de configuración clusterUsers.
Importante
No use este procedimiento para agregar nuevos grupos de Active Directory con el rol bdcAdmin. Los componentes de Hadoop, como HDFS y Spark, solo permiten un grupo de Active Directory como grupo de superusuarios: el equivalente del rol bdcAdmin en BDC. Para conceder a grupos de Active Directory adicionales permisos bdcAdmin al clúster de macrodatos después de la implementación, debe agregar usuarios y grupos adicionales a los grupos ya designados durante la implementación. Puede seguir el mismo procedimiento para actualizar la pertenencia al grupo que tiene el rol bdcUsers.
Dos roles generales en el clúster de macrodatos
Los grupos de Active Directory se pueden proporcionar en la sección de seguridad del perfil de implementación como parte de dos roles generales para la autorización dentro del clúster de macrodatos:
clusterAdmins
: este parámetro toma un grupo de Active Directory. Los miembros de este grupo tienen el rol bdcAdmin, lo que significa que obtienen permisos de administrador para todo el clúster. Tienen permisos de sysadmin en SQL Server, permisos de superuser en el Sistema de archivos distribuido Hadoop (HDFS) y Spark y derechos de administrador en el controlador.clusterUsers
: Estos grupos de Active Directory se asignan a bdcUsers en BDC. Son usuarios normales, sin permisos de administrador en el clúster. Tienen permisos para iniciar sesión en la instancia maestra de SQL Server pero, de forma predeterminada, no tienen permisos para los objetos o los datos. Son usuarios normales de HDFS y Spark, sin permisos de superusuario. Al conectarse al punto de conexión del controlador, estos usuarios solo pueden consultar los puntos de conexión (mediante la lista de puntos de conexión de BDC de azdata).
Para conceder a los grupos de Active Directory adicionales permisos bdcUser sin modificar las pertenencias a grupos en Active Directory, complete los procedimientos que aparecen en las secciones siguientes.
Concesión de permisos bdcUser a grupos de Active Directory adicionales
Creación de un inicio de sesión para el usuario o el grupo de Active Directory en la instancia maestra de SQL Server
Conéctese al punto de conexión de SQL maestro mediante su cliente SQL favorito. Use cualquier inicio de sesión de administrador (por ejemplo,
AZDATA_USERNAME
, que se proporcionó durante la implementación). Como alternativa, podría ser cualquier cuenta de Active Directory que pertenezca al grupo de Active Directory que se proporciona comoclusterAdmins
en la configuración de seguridad.Para crear un inicio de sesión para el usuario o grupo de Active Directory, ejecute el comando Transact-SQL siguiente:
CREATE LOGIN [<domain>\<principal>] FROM WINDOWS;
Conceda los permisos deseados en la instancia de SQL Server:
ALTER SERVER ROLE <server role> ADD MEMBER [<domain>\<principal>]; GO
Para obtener una lista completa de los roles de servidor, consulte el tema de seguridad de SQL Server correspondiente aquí.
Incorporación del usuario o grupo de Active Directory a la tabla de roles en la base de datos del controlador
Ejecute estos comandos para obtener las credenciales de SQL Server del controlador:
a. Ejecute este comando como administrador de Kubernetes:
kubectl get secret controller-sa-secret -n <cluster name> -o yaml | grep password
b. Descodifique el secreto en Base64:
echo <password from kubectl command> | base64 --decode && echo
En una ventana de comandos independiente, exponga el puerto del servidor de base de datos del controlador:
kubectl port-forward controldb-0 1433:1433 --address 0.0.0.0 -n <cluster name>
Use la conexión anterior para insertar una nueva fila en los roles y tablas active_directory_principals. Escriba el valor REALM en mayúsculas.
USE controller; GO INSERT INTO [controller].[auth].[roles] VALUES (N'<user or group name>@<REALM>', 'bdcUser') GO INSERT INTO [controller].[auth].[active_directory_principals] VALUES (N'<user or group name>@<REALM>', N'<SID>') GO
Para buscar el SID del usuario o el grupo que se va a agregar, puede usar los comandos de PowerShell Get-ADUser o Get-ADGroup
Compruebe que los miembros del grupo que ha agregado tienen los permisos bdcUser esperados; para ello, inicie sesión en el punto de conexión del controlador o en la autenticación de la instancia maestra de SQL Server. Por ejemplo:
azdata login azdata bdc endpoints list