Usar roles de Integration Services
SQL Server Integration Services incluye los tres roles fijos de nivel de base de datos, db_ssisadmin, db_ssisltduser y db_ssisoperator, para controlar el acceso a los paquetes. Los roles solo se pueden implementar en los paquetes que se guardan en la base de datos msdb de SQL Server. Para asignar roles a un paquete se utiliza SQL Server Management Studio. Las asignaciones de roles se guardan en la base de datos msdb.
En la tabla siguiente se describen las acciones de lectura/escritura de Windows y los roles fijos de nivel de base de datos en Integration Services.
Rol |
Acción de lectura |
Acción de escritura |
---|---|---|
db_ssisadmin O bien sysadmin |
Enumerar los paquetes propios. Enumerar todos los paquetes. Ver los paquetes propios. Ver todos los paquetes. Ejecutar los paquetes propios. Ejecutar todos los paquetes. Exportar los paquetes propios. Exportar todos los paquetes. Ejecutar todos los paquetes del Agente SQL Server. |
Importar paquetes. Eliminar los paquetes propios. Eliminar todos los paquetes. Cambiar los roles de los paquetes propios. Cambiar los roles de todos los paquetes.
Importante
Los miembros del rol db_ssisadmin y del rol dc_admin quizá puedan elevar sus privilegios a sysadmin. Esta elevación de privilegio se puede producir porque estos roles pueden modificar los paquetes de Integration Services y los paquetes de Integration Services los puede ejecutar SQL Server utilizando el contexto de seguridad de sysadmin del Agente SQL Server. Para protegerse contra esta elevación de privilegio al ejecutar planes de mantenimiento, conjuntos de recopilación de datos y otros paquetes de Integration Services, configure los trabajos del Agente SQL Server que ejecutan paquetes para utilizar una cuenta de proxy con privilegios limitados o agregar solo los miembros de sysadmin a los roles dc_admin y db_ssisadmin.
|
db_ssisltduser |
Enumerar los paquetes propios. Enumerar todos los paquetes. Ver los paquetes propios. Ejecutar los paquetes propios. Exportar los paquetes propios. |
Importar paquetes. Eliminar los paquetes propios. Cambiar los roles de los paquetes propios. |
db_ssisoperator |
Enumerar todos los paquetes. Ver todos los paquetes. Ejecutar todos los paquetes. Exportar todos los paquetes. Ejecutar todos los paquetes del Agente SQL Server. |
Ninguna |
Administradores de Windows |
Ver los detalles de ejecución de todos los paquetes que se están ejecutando. |
Detener todos los paquetes en ejecución en ese momento. |
La tabla sysssispackages de msdb contiene los paquetes que se guardan en SQL Server. Para obtener más información, vea sysssispackages (Transact-SQL).
La tabla sysssispackages incluye columnas que contienen información sobre los roles asignados a los paquetes.
La columna readerrole especifica el rol que tiene acceso de lectura al paquete.
La columna writerrole especifica el rol que tiene acceso de escritura al paquete.
La columna ownersid contiene el identificador de seguridad único del usuario que creó el paquete. Esta columna define el propietario del paquete.
De forma predeterminada, los permisos de los roles fijos de nivel de base de datos db_ssisadmin y db_ssisoperator y el identificador de seguridad único del usuario que creó el paquete se aplican al rol de lector para paquetes, y los permisos del rol db_ssisadmin y el identificador de seguridad único del usuario que creó el paquete se aplican al rol de escritor. Un usuario debe ser miembro del rol db_ssisadmin, db_ssisltduser o db_ssisoperator para tener acceso de lectura al paquete. Un usuario debe ser miembro del rol db_ssisadmin para tener acceso de escritura.
Los roles fijos de nivel de base de datos trabajan conjuntamente con los roles definidos por el usuario. Las funciones definidas por el usuario son aquellas que se crean en SQL Server Management Studio y posteriormente se utilizan para asignar permisos a los paquetes. Para tener acceso a un paquete, un usuario debe ser miembro del rol definido por el usuario y del rol fijo de nivel de base de datos Integration Services pertinente. Por ejemplo, si los usuarios son miembros del rol definido por el usuario AuditUsers asignado a un paquete, también deberán ser miembros del rol db_ssisadmin, db_ssisltduser o db_ssisoperator para tener acceso de lectura al paquete.
Si no asigna roles definidos por el usuario a los paquetes, el acceso a dichos paquetes se determina con los roles fijos de nivel de base de datos.
Si desea utilizar roles definidos por el usuario, debe agregarlos a la base de datos msdb antes de asignarlos a los paquetes. Puede crear roles de base de datos en SQL Server Management Studio.
Los roles de nivel de base de datos de Integration Services conceden los derechos en las tablas del sistema de Integration Services en la base de datos msdb, pero no en las tablas del sistema DTS, como sysdtspackages de la base de datos msdb. Tiene que conceder los derechos de usuarios en las tablas del sistema DTS para poder realizar ciertas tareas de administración, como importar un paquete DTS en Management Studio. Para obtener más información acerca de la compatibilidad con DTS, vea Compatibilidad para Servicios de transformación de datos (DTS) en SQL Server 2008.
Paso 1: abrir el Explorador de objetos y conectarse a Integration Services
Antes de asignar roles a los paquetes con SQL Server Management Studio, debe abrir el Explorador de objetos en SQL Server Management Studio y conectarse a Integration Services.
Debe iniciar el servicio Integration Services antes de conectarse a Integration Services.
Para abrir el Explorador de objetos y conectarse a Integration Services
Abra SQL Server Management Studio.
Haga clic en Explorador de objetos, en el menú Ver.
En la barra de herramientas del Explorador de objetos, haga clic en Conectar y, a continuación, en Integration Services.
En el cuadro de diálogo Conectar al servidor, indique el nombre del servidor. Puede utilizar un punto (.), (local) o localhost para indicar el servidor local.
Haga clic en Conectar.
Paso 2: asignar roles de lector y escritor a los paquetes
Puede asignar un rol de lector y un rol de escritor a cada paquete.
Asignar roles de lector y escritor a un paquete
En el Explorador de objetos, localice la conexión a Integration Services.
Expanda la carpeta Paquetes almacenados y, a continuación, la subcarpeta que contiene el paquete al que desea asignar roles.
Haga clic con el botón secundario en el paquete al que desea asignar roles.
En el cuadro de diálogo Roles de paquete, seleccione un rol de lector de la lista Rol de lector y un rol de escritor de la lista Rol de escritor.
Haga clic en Aceptar.
Crear un rol definido por el usuario
Debe iniciar SQL Server(el servicio MSSQLSERVER) antes de conectarse al motor de base de datos y tener acceso a la base de datos msdb.
Para crear un rol definido por el usuario
Abra SQL Server Management Studio.
Haga clic en Explorador de objetos, en el menú Ver.
En la barra de herramientas del Explorador de objetos, haga clic en Conectar y, a continuación, en Motor de base de datos.
En el cuadro de diálogo Conectar al servidor, indique el nombre del servidor y seleccione un modo de autenticación. Puede utilizar un punto (.), (local) o localhost para indicar el servidor local.
Haga clic en Conectar.
Expanda Bases de datos, Bases de datos del sistema, msdb, Seguridad y Roles.
En el nodo Roles, haga clic con el botón secundario en Roles de base de datos y, a continuación, en Nuevo rol de base de datos.
En la página General, indique un nombre y si lo desea, especifique un propietario, esquemas de propiedad y agregue miembros de roles.
Opcionalmente, haga clic en Permisos y configure permisos de objetos.
Opcionalmente, haga clic en Propiedades extendidas y configure las propiedades extendidas.
Haga clic en Aceptar.
|