Privilegios de bases de datos SQL Server

Establezca los privilegios de bases de datos para determinar la autorización que debe tener para crear o acceder a las tablas de los almacenes de datos para las bases de datos de SQL Server.

Los permisos en SQL Server se asignan a roles que se pueden asignar a usuarios, de forma similar a los grupos de usuarios de Windows. Hay dos tipos de roles:

  • Los Roles de servidor proporcionan permisos relacionados con el servidor de bases de datos, como copia de seguridad, conclusión, creación de bases de datos nuevas, gestión de inicios de sesión y enlace a otros servidores.
  • Los Roles de base de datos proporcionan permisos de base de datos más tradicionales, como acceso a tablas y los que se muestran en la lista más abajo.
Nota: Puede ser miembro de varios roles, de forma que puede combinar permisos de distintos roles fijos para encontrar la combinación correcta para sus necesidades.
Asigne el usuario de la base de datos IBM® Business Process Manager a los cuatro roles siguientes:
Nota: La base de datos la debe crear el administrador de la base de datos, que puede asignar estos roles al usuario de la base de datos para IBM Business Process Manager.
  • db_ddladmin
  • db_datawriter
  • db_datareader
  • SqlJDBCXAUser
Para obtener información sobre los permisos proporcionados por estos roles, consulte la documentación de Microsoft.
Importante: Para todos los usuarios de base de datos, tenga en cuenta las restricciones siguientes:
  • No se puede asignar el rol de administrador del sistema (SYSADMIN) al usuario.
  • El usuario se debe correlacionar con la base de datos maestra con el rol SqlJDBCXAUser.

Para obtener más información, consulte la página WebSphere Application Server en la referencia relacionada.

Cuando cree esquemas de base de datos utilizando la instalación típica o los scripts de base de datos generados mediante el programa de utilidad de línea de mandatos BPMConfig, el ID de usuario debe tener la autoridad para crear tablas. Una vez creadas las tablas, deberá tener autorización para seleccionar, insertar, actualizar y suprimir información en las tablas.

Los tres roles de base de datos fijos antes indicados cubren el 80% de los requisitos; el resto de permisos son:

  • •CREATE INDEXTYPE: No INDEXTYPE, pero db_ddladmin puede crear índices y especificar el tipo
  • •CREATE TABLESPACE: No TABLESPACE, pero conceptos similares son WORKLOAD GROUP, RESOURCE POOL yd PARTITION SCHEME
  • •ALTER LOCK TABLE: Esta funcionalidad está disponible por medio de Sugerencias de bloqueo, utilizando los mandatos de lectura y grabación (p.e., SELECT * FROM nombre tabla WHERE TABLOCKX)
  • •CREATE SEQUENCE: Este mandato está en la documentación de SQL Server 2012, pero no en 2008 R2
La siguiente tabla describe los privilegios de la base de datos necesarios para acceder a los almacenes de datos.
Tabla 1. Privilegios de base de datos
Privilegios mínimos requeridos para crear objetos en la base de datos Privilegios mínimos requeridos para acceder a objetos en la base de datos
Idealmente el ID de usuario requiere privilegios DB OWNER en los almacenes de datos utilizados para IBM Business Process Manager. Configure SQL Server para la autenticación de SQL Server y Windows para que la autenticación esté basada en un ID de inicio de sesión y una contraseña de servidor SQL. El ID de usuario debe ser el propietario de las tablas, o miembro de un grupo que tiene autorización suficiente para emitir sentencias TRUNCATE TABLE.

Consulte la tabla siguiente para ver privilegios detallados.

La siguiente tabla describe más privilegios de bases de datos SQL Server para componentes de IBM Business Process Manager. Los privilegios de instalación son los privilegios requeridos para instalar y configurar el producto. Los privilegios de tiempo de ejecución son los privilegios requeridos para ejecutar el producto.

Tabla 2. Privilegios detallados de bases de datos SQL Server
Componente Privilegios de instalación y actualización Privilegios de tiempo de ejecución
BD común CREATE TABLE, ALTER TABLE, INSERT, CREATE USER, ALTER USER SELECT, UPDATE, DELETE, INSERT, CREATE VIEW, CREATE PROCEDURE

El usuario de tiempo de ejecución debe tener los privilegios USAGE ON SEQUENCE en todas las secuencias del script createSchema_*.sql para las base de datos común.

Business Space CREATE TABLE, ALTER TABLE, INSERT, CREATE USER, ALTER USER SELECT, UPDATE, DELETE, INSERT, CREATE VIEW, CREATE PROCEDURE
Business Process Choreographer CREATE TABLE, ALTER TABLE, CREATE VIEW, CREATE USER, CREATE PROCEDURE SELECT, UPDATE, DELETE, INSERT
Motores de mensajería CREATE TABLE SELECT, UPDATE, DELETE, INSERT, DROP ANY TABLE
Nota: Los motores de mensajería utilizan la sentencia TRUNCATE TABLE SQL, que puede requerir el privilegio DROP ANY TABLE. Consulte el apartado Privilegios de base de datos.
Process Server CREATE TABLE, SELECT, INSERT, UPDATE, DELETE TABLE, DROP TABLE, CREATE INDEX, CREATE VIEW, DROP VIEW, CREATE PROCEDURE, CREATE USER, ALTER USER SELECT, UPDATE, DELETE, INSERT, CREATE VIEW, CREATE PROCEDURE, DROP TABLE, DROP VIEW
Performance Data Warehouse CREATE TABLE, SELECT, INSERT, UPDATE, DELETE TABLE, DROP TABLE, CREATE INDEX, CREATE VIEW, DROP VIEW, CREATE PROCEDURE, CREATE USER, ALTER USER SELECT, UPDATE, DELETE, INSERT, CREATE VIEW, CREATE PROCEDURE, DROP TABLE, DROP VIEW
Almacén de documentos de IBM BPM  
  • db_datawriter
  • db_datareader
  • db_ddladmin
  • public

Al configurar la base de datos para el almacén de documentos de IBM BPM, se utiliza una prestación de base de datos que se denomina EmbeddedECM. Los privilegios enumerados para el almacén de contenido de IBM BPM son necesarios para la base de datos en el archivo de propiedades que contiene la prestación EmbeddedECM.

Notas:
  • Las bases de datos BPMDB y PDWDB deben haberse creado de manera que no distingan entre mayúsculas y minúsculas. Utilice el mandato COLLATE SQL_Latin1_General_CP1_CI_AS, donde CI es el valor del atributo COLLATE que se aplica a bases de datos que no distinguen entre mayúsculas y minúsculas.
  • La base de datos CommonDB se debe haber creado de manera que distinga entre mayúsculas y minúsculas. Utilice el mandato COLLATE SQL_Latin1_General_CP1_CS_AS, donde CS es el valor del atributo COLLATE que se aplica a bases de datos que distinguen entre mayúsculas y minúsculas.