除了使用 db_owner 資料庫角色,有經驗的資料庫管理員可以透過手動建立資料庫架構和角色設定權限,如此可確保提升對資料庫權限的控制。

執行這項作業的原因和時機

您必須要先建立 vCenter Server 的資料庫和使用者。然後您才可以為資料庫使用者建立自訂架構和新的資料庫角色。在安裝 vCenter Server 前,您還必須為使用者啟用資料庫監控。請參閱vCenter Server 的資料庫權限需求

若要執行下列程序,您可以使用圖形化使用者介面或執行指令碼。vCenter Server 安裝程式套件包含 vCenter-Server\dbschema\DB_and_schema_creation_scripts_PostgreSQL.txt 檔案中的範例指令碼。

程序

  1. 建立 vCenter Server 的資料庫和使用者。
    1. 在主要資料庫中,建立 vCenter Server 的資料庫。
    2. 建立 vCenter Server 的資料庫使用者,並將其對應至 vCenter Server 和 msdb 資料庫。

    例如,若要建立資料庫 VCDB 和使用者 vpxuser,您可以執行下列指令碼:

    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

    現在,您即擁有可與 vCenter Server 搭配使用的 Microsoft SQL Server 資料庫。

  2. vCenter Server 資料庫中,建立資料庫架構並將其指派給 vCenter Server 資料庫使用者。

    例如,若要在 VCDB 中建立架構 VMW 並將其指派給 vpxuser 使用者,您可以執行下列指令碼:

    use VCDB
    CREATE SCHEMA VMW
    go
    ALTER USER vpxuser WITH DEFAULT_SCHEMA =VMW
  3. vCenter Server 資料庫中,建立並將權限授與 VC_ADMIN_ROLE 和 VC_USER_ROLE 資料庫角色,然後將角色指派給 vCenter Server 資料庫使用者。

    例如,若要在 VCDB 中建立角色並將其指派給 vpxuser 使用者,您可以執行下列指令碼:

    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. 在 msdb 資料庫中,建立並將權限授與 VC_ADMIN_ROLE 資料庫角色,然後將角色指派給 vCenter Server 資料庫使用者。

    例如,若要建立角色並將其指派給 vpxuser 使用者,您可以執行下列指令碼:

    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
    備註︰

    僅在安裝和升級 vCenter Server 期間需要 msdb 資料庫中的 VC_ADMIN_ROLE 角色。在安裝或升級後,您可以撤銷角色並將其保留為非作用中狀態,以供未來升級之用,或者可為加強安全性而予以移除。

  5. vCenter Server 資料庫使用者啟用資料庫監控。

    例如,若要將資料庫磁碟大小監控權限授與 vpxuser 使用者,您可以執行下列指令碼:

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