Als Alternative zur Verwendung der Datenbankrolle „db_owner“ können erfahrene Datenbankadministratoren Berechtigungen festlegen, indem sie ein Datenbankschema und Rollen manuell erstellen. Dies ermöglicht eine umfassendere Kontrolle der Datenbankberechtigungen.

Warum und wann dieser Vorgang ausgeführt wird

Zunächst müssen Sie eine Datenbank und einen Benutzer für vCenter Server erstellen. Anschließend erstellen Sie ein benutzerdefiniertes Schema und neue Datenbankrollen für den Datenbankbenutzer. Darüber hinaus müssen Sie die Datenbanküberwachung für den Benutzer aktivieren, bevor Sie vCenter Server installieren. Weitere Informationen hierzu finden Sie unter Datenbankberechtigungsanforderungen für vCenter Server.

Für das folgende Verfahren können Sie entweder die grafische Benutzeroberfläche verwenden oder Skripts ausführen. Das Installationspaket für vCenter Server enthält in der Datei vCenter-Server\dbschema\DB_and_schema_creation_scripts_PostgreSQL.txt Beispielskripts.

Prozedur

  1. Erstellen Sie eine Datenbank und einen Benutzer für vCenter Server.
    1. Erstellen Sie in der Master-Datenbank eine Datenbank für vCenter Server.
    2. Erstellen Sie einen Datenbankbenutzer für vCenter Server und ordnen Sie ihn den vCenter Server- und msdb-Datenbanken zu.

    Um beispielsweise die Datenbank VCDB und den Benutzer vpxuser zu erstellen, können Sie das folgende Skript ausführen:

    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

    Sie verfügen jetzt über eine Microsoft SQL Server-Datenbank, die Sie mit vCenter Server verwenden können.

  2. Erstellen Sie in der vCenter Server-Datenbank ein Datenbankschema und weisen Sie es dem vCenter Server-Datenbankbenutzer zu.

    Um beispielsweise das Schema VMW in VCDB zu erstellen und es dem Benutzer vpxuser zuzuweisen, können Sie das folgende Skript ausführen:

    use VCDB
    CREATE SCHEMA VMW
    go
    ALTER USER vpxuser WITH DEFAULT_SCHEMA =VMW
  3. Erstellen Sie in der vCenter Server-Datenbank die Datenbankrollen VC_ADMIN_ROLE und VC_USER_ROLE, erteilen Sie ihnen Berechtigungen und weisen Sie sie dem vCenter Server-Datenbankbenutzer zu.

    Um beispielsweise die Rollen in VCDB zu erstellen und sie dem Benutzer vpxuser zuzuweisen, können Sie das folgende Skript ausführen:

    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. Erstellen Sie in der msdb-Datenbank die Datenbankrolle VC_ADMIN_ROLE, erteilen Sie ihr Berechtigungen und weisen Sie sie dem vCenter Server-Datenbankbenutzer zu.

    Um beispielsweise die Rollen zu erstellen und sie dem Benutzer vpxuser zuzuweisen, können Sie das folgende Skript ausführen:

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

    Die Rolle VC_ADMIN_ROLE in der msdb-Datenbank ist nur für die Installation und das Upgrade von vCenter Server erforderlich. Nach der Installation bzw. dem Upgrade können Sie die Rolle widerrufen und für zukünftige Upgrades deaktiviert lassen. Sie können die Rolle aber auch entfernen, um die Sicherheit zu erhöhen.

  5. Aktivieren Sie die Datenbanküberwachung für den vCenter Server-Datenbankbenutzer.

    Um beispielsweise dem Benutzer vpxuser Berechtigungen zum Überwachen der Festplattengröße der Datenbank zu erteilen, können Sie das folgende Skript ausführen:

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