Plutôt que d’utiliser le rôle de base de données db_owner, des administrateurs de base de données expérimentés peuvent définir des autorisations en créant manuellement un schéma de base de données et des rôles, ce qui garantit un plus grand contrôle sur les autorisations de base de données.

Pourquoi et quand exécuter cette tâche

Vous devez d’abord créer une base de données et un utilisateur pour vCenter Server. Vous créez ensuite un schéma personnalisé et de nouveaux rôles de base de données pour l’utilisateur de la base de données. Vous devez également activer la surveillance de la base de données pour l’utilisateur avant d’installer vCenter Server. Reportez-vous à Exigences d'autorisation de base de données pour vCenter Server.

Pour effectuer la procédure suivante, vous pouvez utiliser l’interface utilisateur graphique ou exécuter des scripts. Le module du programme d’installation de vCenter Server contient des exemples de scripts dans le fichier vCenter-Server\dbschema\DB_and_schema_creation_scripts_PostgreSQL.txt.

Procédure

  1. Créez une base de données et un utilisateur pour vCenter Server.
    1. Dans la base de données principale, créez une base de données pour vCenter Server.
    2. Créez un utilisateur de base de données pour vCenter Server et mappez-le aux bases de données vCenter Server et msdb.

    Par exemple, pour créer la base de données VCDB et l’utilisateur vpxuser, vous pouvez exécuter le script suivant :

    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

    Vous avez maintenant une base de données Microsoft SQL Server utilisable avec vCenter Server.

  2. Dans la base de données vCenter Server, créez un schéma de base de données et attribuez-le à l’utilisateur de la base de données vCenter Server.

    Par exemple, pour créer le schéma VMW dans VCDB et l’attribuer à l’utilisateur vpxuser, vous pouvez exécuter le script suivant :

    use VCDB
    CREATE SCHEMA VMW
    go
    ALTER USER vpxuser WITH DEFAULT_SCHEMA =VMW
  3. Dans la base de données vCenter Server, créez et octroyez des privilèges aux rôles de base de données VC_ADMIN_ROLE et VC_USER_ROLE, et attribuez-les à l’utilisateur de la base de données vCenter Server.

    Par exemple, pour créer les rôles dans VCDB et les attribuer à l’utilisateur vpxuser, vous pouvez exécuter le script suivant :

    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. Dans la base de données msdb, créez et octroyez des privilèges au rôle de base de données VC_ADMIN_ROLE et attribuez-le à l’utilisateur de la base de données vCenter Server.

    Par exemple, pour créer les rôles et les attribuer à l’utilisateur vpxuser, vous pouvez exécuter le script suivant :

    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
    Remarque :

    Le rôle VC_ADMIN_ROLE dans la base de données msdb est requis uniquement pendant l’installation et la mise à niveau de vCenter Server. Après l’installation ou la mise à niveau, vous pouvez révoquer le rôle et le laisser inactif pour les futures mises à niveau, ou vous pouvez le supprimer pour garantir une plus grande sécurité.

  5. Activez la surveillance de base de données pour l’utilisateur de la base de données vCenter Server.

    Par exemple, pour octroyer des autorisations de surveillance de taille de disque de base de données à l’utilisateur vpxuser, vous pouvez exécuter le script suivant :

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