Como alternativa al uso de la función de base de datos db_owner, los administradores de bases de datos con experiencia pueden establecer permisos mediante la creación del esquema y las funciones de base de datos de forma manual, lo que permite un mayor control sobre los permisos de la base de datos.

Por qué y cuándo se efectúa esta tarea

Primero debe crear una base de datos y un usuario para vCenter Server. A continuación, podrá crear un esquema personalizado y nuevas funciones de base de datos para el usuario de la base de datos. También debe habilitar la supervisión de la base de datos del usuario antes de instalar vCenter Server. Consulte Requisitos de permisos de base de datos para vCenter Server.

Para realizar el siguiente procedimiento, puede usar la interfaz de usuario gráfica o ejecutar scripts. El paquete del instalador de vCenter Server contiene scripts de ejemplo en el archivo vCenter-Server\dbschema\DB_and_schema_creation_scripts_PostgreSQL.txt.

Procedimiento

  1. Cree una base de datos y un usuario para vCenter Server.
    1. En la base de datos principal, cree una base de datos para vCenter Server.
    2. Cree un usuario de base de datos para vCenter Server y asígnelo a las bases de datos de vCenter Server y msdb.

    Por ejemplo, para crear el VCDB de la base de datos y el usuario vpxuser, puede ejecutar el siguiente script:

    use master
    go 
    CREATE DATABASE VCDB ON PRIMARY 
    (NAME = N'vcdb', FILENAME = N'C:\database_path\VCDB.mdf', SIZE = 10MB, FILEGROWTH = 10% ) 
    LOG ON 
    (NAME = N'vcdb_log', FILENAME = N'C:\database_path\VCDB.ldf', SIZE = 1000KB, FILEGROWTH = 10%) 
    COLLATE SQL_Latin1_General_CP1_CI_AS 
    go
    use VCDB 
    go 
    CREATE LOGIN vpxuser WITH PASSWORD=N'vpxuser!0', DEFAULT_DATABASE=VCDB, DEFAULT_LANGUAGE=us_english, CHECK_POLICY=OFF
    go 
    CREATE USER vpxuser for LOGIN vpxuser
    go
    use MSDB
    go
    CREATE USER vpxuser for LOGIN vpxuser
    go

    Ahora tiene una base de datos Microsoft SQL Server que puede utilizar con vCenter Server.

  2. En la base de datos de vCenter Server, cree un esquema de base de datos y asígnelo al usuario de base de datos de vCenter Server.

    Por ejemplo, para crear el esquema VMW en VCDB y asignarlo al usuario vpxuser, puede ejecutar el siguiente script:

    use VCDB
    CREATE SCHEMA VMW
    go
    ALTER USER vpxuser WITH DEFAULT_SCHEMA =VMW
  3. En la base de datos de vCenter Server, cree privilegios y asígnelos a las funciones de base de datos VC_ADMIN_ROLE y VC_USER_ROLE; a continuación, asigne dichas funciones al usuario de base de datos de vCenter Server.

    Por ejemplo, para crear las funciones de VCDB y asignarlas al usuario vpxuser, puede ejecutar el siguiente script:

    use VCDB
    go
    if not exists (SELECT name FROM sysusers WHERE issqlrole=1 AND name = 'VC_ADMIN_ROLE')
    CREATE ROLE VC_ADMIN_ROLE;
    GRANT ALTER ON SCHEMA :: VMW to VC_ADMIN_ROLE;
    GRANT REFERENCES ON SCHEMA :: VMW to VC_ADMIN_ROLE;
    GRANT INSERT ON SCHEMA ::  VMW to VC_ADMIN_ROLE;
    
    GRANT CREATE TABLE to VC_ADMIN_ROLE;
    GRANT CREATE VIEW to VC_ADMIN_ROLE;
    GRANT CREATE Procedure to VC_ADMIN_ROLE;
    
    if not exists (SELECT name FROM sysusers WHERE issqlrole=1 AND name = 'VC_USER_ROLE')
    CREATE ROLE VC_USER_ROLE
    go
    GRANT SELECT ON SCHEMA ::  VMW to VC_USER_ROLE
    go
    GRANT INSERT ON SCHEMA ::  VMW to VC_USER_ROLE
    go
    GRANT DELETE ON SCHEMA ::  VMW to VC_USER_ROLE
    go
    GRANT UPDATE ON SCHEMA ::  VMW to VC_USER_ROLE
    go
    GRANT EXECUTE ON SCHEMA :: VMW to VC_USER_ROLE
    go
    sp_addrolemember VC_USER_ROLE , vpxuser
    go
    sp_addrolemember VC_ADMIN_ROLE , vpxuser
    go
  4. En la base de datos de msdb, cree privilegios y asígnelos a la función de base de datos VC_ADMIN_ROLE; a continuación, asigne dicha función al usuario de base de datos de vCenter Server.

    Por ejemplo, para crear las funciones y asignarlas al usuario vpxuser, puede ejecutar el siguiente script:

    use MSDB
    go
    if not exists (SELECT name FROM sysusers WHERE issqlrole=1 AND name = 'VC_ADMIN_ROLE')
    CREATE ROLE VC_ADMIN_ROLE;
    go
    GRANT SELECT on msdb.dbo.syscategories to VC_ADMIN_ROLE
    go
    GRANT SELECT on msdb.dbo.sysjobsteps to VC_ADMIN_ROLE
    go
    GRANT SELECT ON msdb.dbo.sysjobs to VC_ADMIN_ROLE
    go
    GRANT SELECT ON msdb.dbo.sysjobs_view to VC_ADMIN_ROLE
    go
    GRANT EXECUTE ON msdb.dbo.sp_add_job TO VC_ADMIN_ROLE
    go
    GRANT EXECUTE ON msdb.dbo.sp_delete_job TO VC_ADMIN_ROLE
    go
    GRANT EXECUTE ON msdb.dbo.sp_add_jobstep TO VC_ADMIN_ROLE
    go
    GRANT EXECUTE ON msdb.dbo.sp_update_job TO VC_ADMIN_ROLE
    go
    GRANT EXECUTE ON msdb.dbo.sp_add_jobserver TO VC_ADMIN_ROLE
    go
    GRANT EXECUTE ON msdb.dbo.sp_add_jobschedule TO VC_ADMIN_ROLE
    go
    GRANT EXECUTE ON msdb.dbo.sp_add_category TO VC_ADMIN_ROLE
    go
    sp_addrolemember VC_ADMIN_ROLE , vpxuser
    go
    Nota:

    La función VC_ADMIN_ROLE de la base de datos de msdb solo es necesaria durante la instalación y la actualización de vCenter Server. Tras la instalación o la actualización, puede retirar la función y desactivarla para futuras actualizaciones, o puede quitarla para mejorar la seguridad.

  5. Habilite la supervisión de la base de datos para el usuario de base de datos de vCenter Server.

    Por ejemplo, para conceder permisos de supervisión de tamaño del disco de la base de datos, puede ejecutar el siguiente script:

    use master
    go
    grant VIEW SERVER STATE to vpxuser
    go
    GRANT VIEW ANY DEFINITION TO vpxuser
    go