経験の豊富なデータベース管理者であれば、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
    注: msdb データベースの VC_ADMIN_ROLE ロールは、 vCenter Server のインストールとアップグレードの際にのみ必要となります。インストールまたはアップグレードの後、ロールを破棄して今後のアップグレードで使用するために非アクティブのままにしたり、セキュリティ向上のためにロールを削除したりすることができます。
  5. vCenter Server データベース ユーザーに対してデータベース モニタリングを有効にします。
    たとえば、データベースのディスク サイズのモニタリング権限を vpxuser ユーザーに付与する場合、次のスクリプトを実行できます。
    use master
    go
    grant VIEW SERVER STATE to vpxuser
    go
    GRANT VIEW ANY DEFINITION TO vpxuser
    go