Configurar las cuentas de servicio (Analysis Services)

El aprovisionamiento de cuentas para todos los productos se documenta en Configurar los permisos y las cuentas de servicio de Windows, un tema que contiene gran cantidad de información sobre las cuentas de servicio de todos los servicios de SQL Server, incluido Analysis Services. Consulte ese tema para obtener información sobre los tipos de cuenta válidos, los privilegios de Windows asignados en la configuración, los permisos del sistema de archivos, los permisos del Registro, etc.

En este tema se proporciona información adicional de Analysis Services, incluidos los permisos adicionales necesarios de las instalaciones tabulares o en clúster. También se tratan los permisos necesarios para admitir las operaciones de servidor. Por ejemplo, puede configurar las operaciones de consulta y de procesamiento para que se ejecuten en la cuenta de servicio; en tal caso deberá conceder permisos adicionales para que funcione.

  • Privilegios de Windows asignados a Analysis Services

  • Permisos de sistema de archivos asignados a Analysis Services

  • Conceder más permisos para operaciones de servidor específicas

Otro paso de configuración adicional (que no se documenta aquí) es registrar un nombre principal de servicio (SPN) para la cuenta de servicio y la instancia de Analysis Services. Este paso permite la autenticación de paso a través desde aplicaciones cliente a orígenes de datos back-end en escenarios de doble salto. Este paso solo se aplica a los servicios configurados para la delegación limitada de Kerberos. Para obtener más instrucciones, vea Configurar Analysis Services para la delegación limitada de Kerberos.

Recomendaciones sobre la cuenta de inicio de sesión

En un clúster de conmutación por error, todas las instancias de Analysis Services se deben configurar para usar una cuenta de usuario de dominio de Windows. Asigne la misma cuenta a todas las instancias. Consulte el tema sobre cómo agrupar Analysis Services para ver más detalles.

Las instancias independientes deben usar la cuenta virtual predeterminada (NT Service\MSSQLServerOLAPService) como instancia predeterminada o **NT Service\MSOLAP$**nombre de instancia como una instancia con nombre. Esta recomendación es válida para las instancias de Analysis Services en todos los modos de servidor, suponiendo que se ha instalado Windows Server 2008 R2 y posterior para el sistema operativo y SQL Server 2012 y posterior para Analysis Services.

Conceder permisos a Analysis Services

En esta sección se explican los permisos que Analysis Services necesita para las operaciones internas locales, como iniciar el archivo ejecutable, leer el archivo de configuración y cargar bases de datos del directorio de datos. Si, en su lugar, desea obtener instrucciones sobre cómo establecer permisos para el acceso a datos externos y la interoperabilidad con otros servicios y aplicaciones, consulte Conceder más permisos para operaciones de servidor específicas más adelante en este tema.

Para las operaciones internas, el titular de los permisos en Analysis Services no es la cuenta de inicio de sesión, sino un grupo de seguridad de Windows local creado por el programa de instalación que contiene el SID por servicio. Asignar permisos al grupo de seguridad es coherente con las versiones anteriores de Analysis Services. Además, las cuentas de inicio de sesión pueden cambiar con el tiempo, pero el SID por servicio y el grupo de seguridad local son constantes durante la vigencia de la instalación del servidor. Para Analysis Services, esto hace que el grupo de seguridad sea una opción mejor para contener los permisos que la cuenta de inicio de sesión. Siempre que conceda permisos manualmente a la instancia de servicio (ya sean privilegios de Windows o permisos de sistema de archivos), procure concederlos al grupo de seguridad local creado para la instancia del servidor.

El nombre del grupo de seguridad sigue un patrón. El prefijo es siempre SQLServerMSASUser$, seguido del nombre del equipo y terminando con el nombre de instancia. La instancia predeterminada es MSSQLSERVER. Una instancia con nombre es el nombre dado durante la instalación.

Puede ver este grupo de seguridad en la configuración de seguridad local:

  • Ejecute compmgmt.msc | Usuarios y grupos locales | Grupos | SQLServerMSASUser$<nombre del servidor>$MSSQLSERVER (para una instancia predeterminada).

  • Haga doble clic en el grupo de seguridad para ver sus miembros.

El único miembro del grupo es el SID por servicio. Justamente a su lado está la cuenta de inicio de sesión. El nombre de la cuenta de inicio de sesión es superficial: está ahí para proporcionar contexto al SID por servicio. Si, posteriormente, cambia la cuenta de inicio de sesión y vuelve a esta página, verá que ni el grupo de seguridad y ni el SID por servicio han cambiado, sino que solamente será distinta la etiqueta de la cuenta de inicio de sesión.

Privilegios de Windows asignados a Analysis Services

Analysis Services necesita permisos del sistema operativo para iniciar el servicio y solicitar recursos del sistema. Los requisitos varían en función del modo de servidor y de si la instancia está en un clúster. Si no está familiarizado con los privilegios de Windows, consulte Privilegios y Constantes de privilegios (Windows) para obtener información detallada.

Todas las instancias de Analysis Services necesitan el privilegio Iniciar sesión como servicio (SeServiceLogonRight). SQL Server Setup le asigna el privilegio en la cuenta de servicio especificada durante la instalación. En los servidores que se ejecutan en el modo multidimensional y de minería de datos, este es el único privilegio de Windows que la cuenta de servicio de Analysis Services necesita en las instalaciones de servidor independiente, así como el único privilegio que el programa de instalación configura para Analysis Services. En el caso de las instancias tabulares y las instancias en clúster, se deben agregar manualmente privilegios adicionales de Windows.

Las instancias de clústeres de conmutación por error, en el modo tabular y en el multidimensional, requieren también Aumentar prioridad de programación (SeIncreaseBasePriorityPrivilege).

Las instancias tabulares usan los tres privilegios adicionales siguientes, que deben concederse manualmente tras la instalación de la instancia.

Aumentar el espacio de trabajo de un proceso (SeIncreaseWorkingSetPrivilege)

Este privilegio está disponible para todos los usuarios de forma predeterminada mediante el grupo de seguridad Usuarios. Si bloquea un servidor quitando privilegios a este grupo, es posible que Analysis Services no pueda iniciarse, y se mostrará este error: "El cliente no dispone de un privilegio requerido". Si se produce dicho error, restaure el privilegio en Analysis Services concediéndolo al grupo de seguridad adecuado de Analysis Services.

Ajustar las cuotas de la memoria para un proceso (SeIncreaseQuotaSizePrivilege)

Este privilegio se usa para solicitar más memoria en el caso de que un proceso no tenga recursos suficientes para completar su ejecución, sujeta a los umbrales de la memoria establecidos para la instancia.

Bloquear páginas en memoria (SeLockMemoryPrivilege)

Este privilegio es necesario únicamente cuando la paginación está completamente desactivada. Una instancia de servidor tabular usa de forma predeterminada el archivo de paginación de Windows, si bien puede evitar que use la paginación de Windows definiendo VertiPaqPagingPolicy en 0.

VertiPaqPagingPolicy en 1 (valor predeterminado) indica a la instancia de servidor tabular que utilice el archivo de paginación de Windows. Las asignaciones no están bloqueadas, por lo que Windows puede efectuar la paginación según proceda. No hay ningún motivo por el que se deban bloquear las páginas en la memoria, ya que se está usando la paginación. Por ello, en la configuración predeterminada (donde VertiPaqPagingPolicy = 1) no tiene que conceder el privilegio Bloquear páginas en memoria a una instancia tabular.

VertiPaqPagingPolicy a 0. Si desactiva la paginación de Analysis Services, se bloquean las asignaciones y se da por hecho que se ha concedido el privilegio Bloquear páginas en memoria a la instancia tabular. Con este parámetro y con el privilegio Bloquear páginas en memoria, Windows no puede paginar las asignaciones de memoria realizadas en Analysis Services cuando el sistema no disponga de memoria suficiente. Analysis Services se basa en el permiso Bloquear páginas en memoria como exigencia para VertiPaqPagingPolicy = 0. Tenga en cuenta que no se recomienda desactivar la paginación de Windows. Aumentará la tasa de errores de memoria insuficiente de las operaciones que, con la paginación habilitada, se habrían efectuado correctamente. Consulte Propiedades de memoria para obtener más información acerca de VertiPaqPagingPolicy.

Ver o agregar privilegios de Windows en la cuenta de servicio

  1. Ejecute GPEDIT.msc | Directiva de equipo local | Configuración del equipo | Configuración de Windows | Configuración de seguridad | Directivas locales | Asignaciones de derechos de usuario.

  2. Revise las directivas existentes en las que se incluya SQLServerMSASUser$. Se trata de un grupo de seguridad que se encuentra en los equipos que tienen una instalación de Analysis Services. A este grupo de seguridad se han concedido tanto los privilegios de Windows como los permisos de carpeta de archivos. Haga doble clic en la directiva Iniciar sesión como servicio para ver cómo se ha especificado el grupo de seguridad en el sistema. El nombre completo del grupo de seguridad puede variar en función de si ha instalado Analysis Services como instancia con nombre. Use este grupo de seguridad en vez de la cuenta de servicio real para agregar privilegios de cuenta.

  3. Para agregar privilegios de cuenta en GPEDIT, haga clic con el botón secundario en Aumentar el espacio de trabajo de un proceso y seleccione Propiedades.

  4. Haga clic en Agregar grupo o usuario.

  5. Escriba el grupo de seguridad de la instancia de Analysis Services. Recuerde que el nombre consta del grupo de seguridad, el equipo y el nombre de instancia.

    En la siguiente lista se muestran dos ejemplos de una instancia predeterminada "MSSQLSERVER" y una instancia con nombre llamada "Tabular" en un equipo denominado "SQL01-WIN12", donde el nombre de equipo es el dominio local.

    • SQL01-WIN12\SQLServerMSASUser$SQL01-WIN12$MSSQLSERVER

    • SQL01-WIN12\SQLServerMSASUser$SQL01-WIN12$TABULAR

  6. Haga lo mismo para Ajustar las cuotas de la memoria para un proceso y, de forma opcional, para Bloquear páginas en memoria o Aumentar prioridad de programación.

[!NOTA]

Las versiones anteriores del programa de instalación agregaban involuntariamente la cuenta de servicio de Analysis Services al grupo Usuarios del registro de rendimiento. Aunque este defecto se ha corregido, puede que las instalaciones existentes tengan esta pertenencia de grupo innecesaria. Puesto que no es necesario que la cuenta de servicio de Analysis Services pertenezca al grupo Usuarios del registro de rendimiento, puede quitarla del grupo.

Permisos de sistema de archivos asignados a Analysis Services

[!NOTA]

Vea Configurar los permisos y las cuentas de servicio de Windows para obtener una lista de permisos asociados a cada carpeta de programa.

Vea Configurar el acceso HTTP a Analysis Services en Internet Information Services (IIS) 7.0 para obtener información de permisos relacionada con la configuración de IIS y Analysis Services.

El programa de instalación de SQL Server asigna durante la instalación todos los permisos del sistema de archivos necesarios para las operaciones de servidor (incluidos los permisos necesarios para cargar y descargar bases de datos desde una carpeta de datos específica).

Recuerde que el titular de los permisos de los archivos de datos, archivos ejecutables de programas, archivos de configuración, archivos de registro y archivos temporales es un grupo de seguridad local creado por el programa de instalación de SQL Server.

Se crea un grupo de seguridad para cada instancia instalada. El nombre del grupo de seguridad se basa en el nombre de la instancia, ya sea SQLServerMSASUser<nombreDeServidor>$MSSQLSERVER (en el caso de la instancia predeterminada) o SQLServerMSASUser$<nombreDeServidor>$<nombreDeInstancia> (en el caso de una instancia con nombre). El programa de instalación aprovisiona este grupo de seguridad con los permisos necesarios para llevar a cabo operaciones de servidor. Si comprueba los permisos de seguridad del directorio \MSAS11.MSSQLSERVER\OLAP\BIN, verá que el grupo de seguridad (no la cuenta de servicio ni el SID por servicio) es el titular de los permisos de ese directorio.

El grupo de seguridad solo contiene un miembro: el identificador de seguridad de servicios (SID) de la cuenta de inicio de instancias Analysis Services. El programa de instalación agrega el SID por servicio al grupo de seguridad local. El uso de un grupo de seguridad local, con la pertenencia de SID, es una diferencia pequeña pero apreciable en cómo SQL Server Setup aprovisiona Analysis Services, en comparación con el motor de base de datos.

Si cree que los permisos de archivos están dañados, siga estos pasos para comprobar que el servicio sigue bien aprovisionado:

  1. Use la herramienta de línea de comandos Control de servicios (sc.exe) para obtener el SID de una instancia de servicio predeterminada.

    SC showsid MSSqlServerOlapService

    Para las instancias con nombre (donde el nombre de la instancia es Tabular), use esta sintaxis:

    SC showsid MSOlap$Tabular

  2. Use Computer Manager | Usuarios y grupos locales | Grupos para inspeccionar la pertenencia del grupo de seguridad SQLServerMSASUser$<nombreDeServidor>$<nombreDeInstancia>.

    El SID de miembro debe coincidir con el SID por servicio del paso 1.

  3. Use Windows Explorer | Archivos de programa | Microsoft SQL Server | MSASxx.MSSQLServer | OLAP | ubicación para comprobar que las propiedades de seguridad de carpeta se conceden al grupo de seguridad en el paso 2.

[!NOTA]

Nunca quite o modifique un SID. Para restaurar un SID por servicio eliminado accidentalmente, vea https://support.microsoft.com/kb/2620201.

Más información acerca de los SID por servicio

Cada cuenta de Windows tiene un SID asociado, pero los servicios pueden tener también SID, por lo que se les conoce como SID por servicio. Se crea un SID por servicio cuando se instala una instancia de servicio como elemento único y permanente del servicio. El SID por servicio es un SID local de nivel de equipo que se genera a partir del nombre del servicio. En una instancia predeterminada, su nombre descriptivo es NT SERVICE\MSSQLServerOLAPService.

La ventaja de los SID por servicio es que permiten cambiar de forma arbitraria la cuenta de inicio de sesión más visible, sin afectar por ello a los permisos de archivo. Por ejemplo, suponga que ha instalado dos instancias de Analysis Services, una instancia predeterminada y una instancia con nombre, y que ambas se ejecutan en la misma cuenta de usuario de Windows. Mientras la cuenta de inicio de sesión se comparte, cada instancia de servicio tendrá un SID por servicio único. Este SID es distinto del SID de la cuenta de inicio de sesión. El SID por servicio se usa para los permisos de archivos y los privilegios de Windows. En cambio, el SID de la cuenta de inicio de sesión se usa en escenarios de autenticación y autorización (SID diferentes para distintos fines).

El SID es inmutable, por lo que las ACL del sistema de archivos que se crean durante la instalación del servicio se pueden usar de forma indefinida, independientemente de la frecuencia con la que cambie la cuenta de servicio. Como medida de seguridad adicional, las ACL que especifican permisos mediante un SID aseguran que solo una única instancia de un servicio tiene acceso a los archivos ejecutables de programas y a las carpetas de datos, incluso aunque haya otros servicios que se ejecuten bajo la misma cuenta.

Conceder más permisos para operaciones de servidor específicas

Analysis Services ejecuta algunas tareas en el contexto de seguridad de la cuenta de servicio (o cuenta de inicio de sesión) que se usa para iniciar Analysis Services y ejecuta otras tareas en el contexto de seguridad del usuario que solicita la tarea.

En la tabla siguiente se describen los permisos adicionales necesarios para que las tareas se ejecuten como la cuenta de servicio.

Operación del servidor

Elemento de trabajo

Justificación

Acceso remoto a orígenes de datos relacionales externos

Crear un inicio de sesión de base de datos para la cuenta de servicio

El procesamiento se refiere a la recuperación de datos de un origen de datos externo (normalmente una base de datos relacional), que después se carga en una base de datos de Analysis Services. Una de las opciones de credenciales para recuperar datos externos consiste en usar la cuenta de servicio. Esta opción de credenciales solo funciona si crea un inicio de sesión de la base de datos para la cuenta de servicio y concede permisos de lectura para la base de datos de origen. Vea Establezca las opciones de suplantación (SSAS - multidimensional) para obtener más información acerca de cómo usar la opción de cuenta de servicio para esta tarea. Del mismo modo, si se emplea el modo de almacenamiento ROLAP, están disponibles las mismas opciones de suplantación. En este caso, la cuenta debe disponer también de acceso de escritura a los datos de origen para procesar las particiones ROLAP (es decir, para almacenar agregaciones).

DirectQuery

Crear un inicio de sesión de base de datos para la cuenta de servicio

DirectQuery es una característica tabular que se usa para consultar conjuntos de datos externos que son demasiado grandes y no caben en el modelo tabular o que tienen otras características que hacen que sea mejor usar DirectQuery que la opción predeterminada de almacenamiento en memoria. Una de las opciones de conexión disponibles en el modo DirectQuery es usar la cuenta de servicio. De nuevo, esta opción solo funciona cuando la cuenta de servicio tiene un inicio de sesión de la base de datos y permisos de lectura en el origen de datos de destino. Vea Establezca las opciones de suplantación (SSAS - multidimensional) para obtener más información acerca de cómo usar la opción de cuenta de servicio para esta tarea. También se pueden usar las credenciales del usuario actual para recuperar datos. En la mayoría de los casos, esta opción conlleva una conexión de doble salto, por lo que debe asegurarse de configurar la cuenta de servicio para la delegación limitada de Kerberos de forma que la cuenta de servicio pueda delegar las identidades en un servidor que sigue en la cadena. Para obtener más información, vea Configurar Analysis Services para la delegación limitada de Kerberos.

Acceso remoto a otras instancias de SSAS

Agregar la cuenta de servicio a roles de bases de datos de Analysis Services definidos en el servidor remoto

Las particiones remotas y la referencia a objetos vinculados en otras instancias remotas de Analysis Services son capacidades del sistema que requieren permisos en un equipo o dispositivo remoto. Cuando una persona crea y rellena particiones remotas, o cuando configura un objeto vinculado, esa operación se ejecuta en el contexto de seguridad del usuario actual. Si más adelante automatiza estas operaciones, Analysis Services tendrá acceso a las instancias remotas en el contexto de seguridad de su cuenta de servicio. Para obtener acceso a objetos vinculados en una instancia remota de Analysis Services, la cuenta de inicio de sesión debe tener permiso para leer los objetos adecuados en la instancia remota como, por ejemplo, permiso de acceso de lectura a determinadas dimensiones. Del mismo modo, el uso de particiones remotas requiere que la cuenta de servicio tenga derechos administrativos en la instancia remota. Esos permisos se conceden en la instancia remota de Analysis Services, mediante roles que asocian las operaciones permitidas a un objeto concreto. Consulte Conceder permisos de base de datos (Analysis Services) para obtener instrucciones sobre cómo conceder los permisos de Control total, que permiten efectuar operaciones de procesamiento y de consulta. Vea Crear y administrar una partición remota (Analysis Services) para obtener más información acerca de las particiones remotas.

Reescritura

Agregar la cuenta de servicio a roles de bases de datos de Analysis Services definidos en el servidor remoto

Cuando se habilita en aplicaciones cliente, la reescritura es una característica de los modelos multidimensionales que permite la creación de nuevos valores de datos durante el análisis de datos. Si la reescritura está habilitada en cualquier dimensión o cubo, la cuenta de servicio de Analysis Services debe disponer de permisos de escritura sobre la tabla de reescritura de la base de datos relacional de origen de SQL Server. Si esta tabla todavía no existe y es necesario crearla, la cuenta de servicio de Analysis Services debe disponer también de permisos para crear la tabla dentro de la base de datos de SQL Server designada.

Escribir en una tabla del registro de consultas de una base de datos relacional de SQL Server

Crear un inicio de sesión de base de datos para la cuenta de servicio y asignar permisos de escritura en la tabla del registro de consultas

Puede habilitar el registro de consultas para recopilar datos de uso de una tabla de la base de datos para su análisis posterior. La cuenta de servicio de Analysis Services debe disponer de permisos de escritura sobre la tabla del registro de consultas de la base de datos de SQL Server designada. Si esta tabla todavía no existe y es necesario crearla, la cuenta de inicio de sesión de Analysis Services deberá disponer también de permisos para crear la tabla en la base de datos de SQL Server designada. Para obtener más información, vea Mejorar el rendimiento de SQL Server Analysis Services con el Asistente para optimización basada en el uso (blog) y Registro de consultas de Analysis Services (blog).

Vea también

Referencia

Configurar los permisos y las cuentas de servicio de Windows

Otros recursos

Cuenta de servicio de SQL Server y SID por servicio (blog)

SQL Server usa un SID de servicio para proporcionar aislamiento del servicio (artículo de KB)

Token de acceso (MSDN)

Identificadores de seguridad (MSDN)

Token de acceso (Wikipedia)

Listas de control de acceso (Wikipedia)