作为使用 db_owner 数据库角色的替代方法,经验丰富的数据库管理员可以通过手动创建数据库架构和角色来设置权限,这样可以更有效地控制数据库权限。
要执行以下过程,可以使用图形用户界面,也可以运行脚本:vCenter Server 安装程序软件包的 vCenter-Server\dbschema\DB_and_schema_creation_scripts_PostgreSQL.txt 文件中包含示例脚本。
过程
- 为 vCenter Server 创建数据库和用户。
- 在主数据库中,为 vCenter Server 创建一个数据库。
- 为 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 数据库。 - 在 vCenter Server 数据库中,创建数据库架构并将其分配给 vCenter Server 数据库用户。
例如,要在 VCDB 中创建架构 VMW 并将其分配给 vpxuser 用户,您可以运行以下脚本:
use VCDB CREATE SCHEMA VMW go ALTER USER vpxuser WITH DEFAULT_SCHEMA =VMW
- 在 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
- 在 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 角色。安装或升级后,可以撤销角色并将其保留为非活动状态以供将来升级使用,或者移除该角色以增加安全性。 - 为 vCenter Server 数据库用户启用数据库监控。
例如,要向 vpxuser 用户授予数据库磁盘大小监控权限,您可以运行以下脚本:
use master go grant VIEW SERVER STATE to vpxuser go GRANT VIEW ANY DEFINITION TO vpxuser go