从 PostgreSQL 数据库迁移到 MS SQL Server
M365 Security Plus 自带 PostgreSQL 数据库,用于存储产品报告、监控、管理和审计模块的数据。该解决方案还支持 MS SQL Server,并允许您将产品数据从内置的 PostgreSQL 迁移到 MS SQL 数据库。本指南将引导您完成数据库迁移过程。
支持的 MS SQL Server 版本:2008 R2、2012、2014、2016、2017、2019 和 2022。
迁移过程前提条件
确保以下条件在您要迁移数据的 MS SQL Server 上满足:
- SQL Server 浏览器必须正在运行。
- SQL Server 网络配置中,TCP/IP 协议必须启用。
- 所有客户端协议必须启用。
- MS SQL Server 访问权限必须授予具有 sysadmin 和 db_owner 权限的用户,分别在服务器和数据库级别。
注意:如果外部 Microsoft SQL Server 数据库和产品数据库存在于不同域,可能会导致某些文件权限冲突和问题。因此,您需要在它们之间建立域信任,或 将 Windows 用户添加到具有 db_datawriter 和 db_datareader 权限的 Microsoft SQL 登录名。.
请参考 附录 A 配置前提条件 1、2 和 3。请参考 附录 B 配置前提条件 4。
从 PostgreSQL 迁移到 MS SQL
将 M365 Security Plus 默认 PostgreSQL 数据库的数据迁移到 MS SQL 包含以下两个步骤:
- 备份 M365 Security Plus 数据库
- 将 PostgreSQL 数据迁移到 MS SQL
步骤 1:备份 M365 Security Plus 数据库
如果您迁移的是新安装的数据库,则可以跳过此步骤。
- 停止 M365 Security Plus(在执行备份前停止 M365 Security Plus 非常重要)。
- 如果 M365 Security Plus 以控制台模式运行,点击 Windows 图标。搜索 M365 Security Plus,选择停止。 M365 Security Plus.
- 如果 M365 Security Plus 以服务方式运行,点击 Windows 图标。搜索“服务”。在弹出的窗口中,选择 ManageEngine M365 Security Plus,然后在左侧选择停止服务选项。
- 进入 <M365 Security Plus 安装目录>\bin.
注意:默认情况下,M365 Security Plus 安装路径为:C:\Program Files\ManageEngine\M365 Security Plus
- 以管理员身份运行 backupDB (Windows 批处理文件)。进程完成前请勿终止。
- M365 Security Plus 默认数据库中的数据将被备份并存储于 <M365 Security Plus 安装目录>\backup\O365_Backup _<备份时间> 目录下。
注意:如果运行 backupDB 文件时出现下述错误,请确保产品已停止后再继续。
步骤 2:将 PostgreSQL 数据迁移到 MS SQL
注意:迁移前请确保 M365 Security Plus 已停止。
- 如果 MS SQL Server 安装在 远程计算机上,请先安装必要的命令行工具和本地客户端,然后继续下一步。
注意: 从以下链接下载对应的命令行工具和本地客户端。点击页面上的下载按钮后,您会看到 SQL Native Client 或命令行工具的列表。命令行工具包含 SQLCMD 字样,本地客户端文件名为 sqlncli。根据 M365 Security Plus 所在机器的 MS SQL Server 版本和 CPU 类型,安装对应的 SQL Native Client 或命令行工具。
| SQL Server 版本 |
命令行工具 |
本地客户端 |
| 2008 R2 |
下载 |
下载 |
| 2012 |
下载 |
下载 |
| 2014 |
下载 |
下载 |
| 2016 |
下载 |
不需要 |
| 2017 |
下载 |
不需要 |
| 2019 |
下载 |
不需要 |
| 2022 |
下载 |
不需要 |
- 将以下文件复制到 <M365 Security Plus 安装目录>\bin 文件夹.
- bcp.exe - <MSSQL 安装目录>\Tools\Bin\bcp.exe
- bcp.rll - <MSSQL 安装目录>\Tools\Bin\Resources\1033\bcp.rll
- 如果 Microsoft SQL Server 机器启用了防火墙,必须开放 TCP 和 UDP 端口。
- 如果您迁移至启用了 强制加密 的 Microsoft SQL Server,请按以下步骤操作。
- ,进入 <安装目录>\jre\bin 。使用以下命令将证书关联到 Java KeyStore。 keytool -import -v -trustcacerts -alias myserver -file pathofthecert\certname.cer -keystore "..\lib\security\cacerts" -keypass changeit -storepass changeit -nopromptpathofthecert
为证书存储位置,
certname 为证书名称。 证书将添加到您的 Java KeyStore。 在
- <M365 Security Plus
- 进入 目录>\bin 运行 ChangeDB
- 以管理员身份运行 批处理文件,选择以管理员身份运行。在出现的数据库设置向导中,选择 MS SQL Server 作为 服务器类型。 Server Type.
- 输入 主机名 和 端口号 的 MS SQL Server。
- 选择 SQL Server 实例 从下拉列表中。
- 选择 认证 类型。
- 如果选择 Windows 认证,请输入 域名、用户名,和 密码 拥有访问服务器权限的用户账户。
- 如果选择 SQL Server 认证,请输入 拥有访问 MS SQL Server 实例权限的用户名。 和 密码 用户名
- 如果您希望迁移的 Microsoft SQL 服务器已启用 强制加密 ,请选择 SSL 连接 复选框。
- 如果您想迁移默认数据库中存储的所有数据,并且还想在新迁移的数据库中保留一份副本,请勾选 迁移现有数据复选框。如果不想迁移数据,可以不选中该项。
注意 选择任一选项后,数据即使在迁移后仍会保留在默认的 PostgreSQL 数据库中,但 MS SQL 数据库将处于活动状态并用于存储所有产品数据。
- 点击 测试连接。如果测试失败,请重新检查您的凭据并重试。
- 点击 配置数据库 以完成 MS SQL Server 配置。
- 启动 M365 Security Plus 服务器/服务 以使用 MS SQL Server 作为数据库。
附录 A
配置 MS SQL Server
如果您已有功能正常的 MS SQL Server,则无需此步骤。请按照以下步骤配置新的 MS SQL Server 安装。
- 运行 compmgmt.msc 在命令提示符中打开 SQL Server 配置管理器。
- 转到 SQL Server 服务,确保 SQL Server 浏览器正在运行。
- 。在左侧窗格中,点击 SQL Server 网络配置,双击 SQLEXPRESS 协议.
注意 SQLEXPRESS 是配置 MS SQL Server 时指定的实例名称。此名称将用作参考。
- 在弹出的窗口中,转到 协议 选项卡,并启用 TCP/IP。重启 SQL Server SQLEXPRESS 服务。
- 返回到 SQL Server 配置管理器。在左侧窗格中:
- 进入 SQL Server 网络配置 > SQLEXPRESS 协议,启用所有 协议.
- 进入 SQL Native Client 配置 > 客户端协议,启用所有 协议.
附录 B
授权 MS SQL Server 访问权限给用户
要完成迁移过程,您需要一个 数据库管理员 账户用于 MS SQL 连接。如果 M365 Security Plus 已作为 Windows 服务运行,则可以使用其 服务账户 作为 MS SQL 数据库管理员账户。请检查该账户是否拥有所需权限。如果 MS SQL Server 中没有先前配置的服务账户,请按照以下步骤创建新用户账户并分配所需权限。
- 登录到 SQL Server Management Studio.
- 在左侧窗格,导航到 计算机名 > SQLEXPRESS > 安全性 > 登录名.
- 右键点击 登录名,选择 新建登录名.
- 提供 登录名,并选择是否使用 Windows 认证 SQL Server 配置管理器 > SQL Server 网络配置 SQL Server 认证.
- 如果选择 Windows 认证,输入 Windows NT 名称 该用户将被授予访问权限。
- 如果选择 SQL Server 认证,系统将提示您创建新 用户名 和 密码.
- 新用户必须具备 sysadmin 服务器级别 角色和数据库级别 和 db_owner 角色。请按照以下步骤为新用户授予 sysadmin 和 db_owner 角色权限:
- 进入 计算机名 > SQLEXPRESS > 安全性 > 登录名。右键点击 用户 > 属性.
- 转到 服务器角色,勾选 sysadmin 复选框,并点击 确定.
- 转到 用户映射 在左侧窗格中。在“映射到此登录名的用户”列表中,勾选 数据库 并在 数据库角色成员资格列表中,选择 。 db_owner在导出文件格式页面选择 确定.
通常,配置的账户需要拥有以下三组权限之一,才能成功完成迁移过程:
| |
所需数据库角色 |
所需权限 |
| 方案 1 |
db_owner |
不需要 |
| 方案 2 |
db_datareader, db_datawriter, db_ddladmin, db_backupoperator。 |
不需要 |
| 方案 3 |
db_ddladmin |
ALTER ANY TABLE,
ALTER ANY AGGREGATE,
ALTER ANY DEFAULT,
ALTER ANY FUNCTION,
ALTER ANY PROCEDURE,
ALTER ANY QUEUE, ALTER ANY RULE,
ALTER ANY SYNONYM,
ALTER ANY TYPE,
ALTER ANY VIEW,
ALTER ANY XML SCHEMA COLLECTION,
ALTER ANY REFERENCES,
CONTROL ON CERTIFICATE::[ZOHO_CERT]
TO [user],
CONTROL ON SYMMETRIC
KEY::[##MS_DatabaseMasterKey##] TO [user],
CONTROL ON SYMMETRIC KEY::[ZOHO_SYMM_KEY]
TO [user]
|
重要提示:
请注意,首次从 PostgreSQL 迁移到 MS SQL 时,您必须具有 db_owner 权限。迁移成功后,您可以撤销 db_owner 权限,并为该账户提供方案 2 或方案 3 权限。