证书配置数据库镜像 demo from msdn

简介: 下面的示例演示必须对驻留在 HOST_A 上的一个伙伴执行哪些操作。在此示例中,两个伙伴是三个计算机系统上的默认服务器实例。两个服务器实例在非信任的 Windows 域中运行,因此需要基于证书的身份验证。

下面的示例演示必须对驻留在 HOST_A 上的一个伙伴执行哪些操作。在此示例中,两个伙伴是三个计算机系统上的默认服务器实例。两个服务器实例在非信任的 Windows 域中运行,因此需要基于证书的身份验证。

HOST_A 担当初始主体角色,HOST_B 担当镜像角色。

使用证书设置数据库镜像涉及四个常规阶段,本示例演示其中的三个阶段:1、2、4。这些阶段如下:

  1. 配置出站连接

    本示例显示了下列操作的步骤:

    1. 为出站连接配置 Host_A。

    2. 为出站连接配置 Host_B。

    有关设置数据库镜像的这一阶段的信息,请参阅如何允许数据库镜像使用证书进行出站连接 (Transact-SQL)

  2. 配置入站连接

    本示例显示了下列操作的步骤:

    1. 为入站连接配置 Host_A。

    2. 为入站连接配置 Host_B。

    有关设置数据库镜像的这一阶段的信息,请参阅如何允许数据库镜像将证书用于入站连接 (Transact-SQL)

  3. 创建镜像数据库

    有关如何创建镜像数据库的信息,请参阅如何为镜像准备镜像数据库 (Transact-SQL)

  4. 配置镜像伙伴

配置出站连接

为出站连接配置 Host_A

  1. 在 master 数据库中,创建数据库主密钥(如果需要)。

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';
    GO
    
  2. 为此服务器实例制作一个证书。

    USE master;
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate';
    GO
    
  3. 使用该证书为服务器实例创建一个镜像端点。

    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=7024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE HOST_A_cert
          , ENCRYPTION = REQUIRED ALGORITHM AES
          , ROLE = ALL
       );
    GO
    
  4. 备份 HOST_A 证书,并将其复制到其他系统,即 HOST_B。

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';
    GO
    
  5. 使用任一安全的复制方法,将 C:\HOST_A_cert.cer 复制到 HOST_B。

为出站连接配置 Host_B

  1. 在 master 数据库中,创建数据库主密钥(如果需要)。

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
    GO
    
  2. 为 HOST_B 服务器实例制作一个证书。

    CREATE CERTIFICATE HOST_B_cert 
       WITH SUBJECT = 'HOST_B certificate for database mirroring';
    GO
    
  3. 在 HOST_B 中为服务器实例创建一个镜像端点。

    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=7024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE HOST_B_cert
          , ENCRYPTION = REQUIRED ALGORITHM AES
          , ROLE = ALL
       );
    GO
    
  4. 备份 HOST_B 证书。

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
    GO 
    
  5. 使用任一安全的复制方法,将 C:\HOST_B_cert.cer 复制到 HOST_A。

有关详细信息,请参阅如何允许数据库镜像使用证书进行出站连接 (Transact-SQL)

[返回页首]

配置入站连接

为入站连接配置 Host_A

  1. 在 HOST_A 上为 HOST_B 创建一个登录名。

    USE master;
    CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#';
    GO
    
  2. 创建一个使用该登录名的用户。

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    
  3. 使证书与该用户关联。

    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'C:\HOST_B_cert.cer'
    GO
    
  4. 授予对远程镜像端点的登录名的 CONNECT 权限。

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    GO
    

为入站连接配置 Host_B

  1. 在 HOST_B 上为 HOST_A 创建一个登录名。

    USE master;
    CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2';
    GO
    
  2. 创建一个使用该登录名的用户。

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
    GO
    
  3. 使证书与该用户关联。

    CREATE CERTIFICATE HOST_A_cert
       AUTHORIZATION HOST_A_user
       FROM FILE = 'C:\HOST_A_cert.cer'
    GO
    
  4. 授予对远程镜像端点的登录名的 CONNECT 权限。

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
    GO
    
重要说明 重要提示

如果打算在具有自动故障转移功能的高安全性模式下运行,则必须重复相同的设置步骤为出站连接和入站连接配置见证服务器。设置入站连接时,如果涉及到见证服务器,则需要为两个伙伴的见证服务器和见证服务器的两个伙伴设置登录名和用户。

有关详细信息,请参阅如何允许数据库镜像将证书用于入站连接 (Transact-SQL)

[返回页首]

创建镜像数据库

有关如何创建镜像数据库的信息,请参阅如何为镜像准备镜像数据库 (Transact-SQL)

配置镜像伙伴

  1. 在 HOST_B 的镜像服务器实例上,将 HOST_A 上的服务器实例设置为伙伴(使其成为初始主体服务器实例)。将TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024 替换为有效的网络地址。有关详细信息,请参阅指定服务器网络地址(数据库镜像)

    --At HOST_B, set server instance on HOST_A as partner (principal server):
    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024';
    GO
    
  2. 在 HOST_A 的主体服务器实例上,将 HOST_B 上的服务器实例设置为伙伴(使其成为初始镜像服务器实例)。将TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024 替换为有效的网络地址。

    --At HOST_A, set server instance on HOST_B as partner (mirror server).
    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024';
    GO
    
  3. 此示例假设会话将在高性能模式下运行。若要在高性能模式下配置此会话,在主体服务器实例上(位于 HOST_A 上),将事务安全性设置为 OFF。

    --Change to high-performance mode by turning off transacton safety.
    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER SAFETY OFF;
    GO
    
    注意 注意

    如果打算在具有自动故障转移功能的高安全性模式下运行,则将事务安全性设置为 FULL(默认设置),并在执行第二个 SET PARTNER 'partner_server' 语句后尽快添加见证服务器。注意,必须首先为出站连接和入站连接配置见证服务器。

目录
相关文章
|
6天前
|
SQL 关系型数据库 分布式数据库
PolarDB Proxy配置与优化:提升数据库访问效率
【9月更文挑战第6天】PolarDB是阿里云推出的高性能分布式关系型数据库,PolarDB Proxy作为其关键组件,位于客户端与PolarDB集群间,负责SQL请求的解析与转发,并支持连接池管理、SQL过滤及路由规则等功能。本文详细介绍了PolarDB Proxy的配置方法,包括连接池、负载均衡和SQL过滤设置,并探讨了监控调优、缓存及网络优化策略,以帮助提升数据库访问效率。
16 1
|
11天前
|
Java 数据库连接 数据库
数据库以及其他项目配置
该项目配置了数据库连接和MyBatis设置,并解决了配置文件加载问题。启动类使用 `@SpringBootApplication` 注解,可通过 `@ComponentScan` 指定扫描包。Lombok 自动生成 getter/setter 等方法,简化代码。Result 实体类用于统一返回格式。用户模块包括注册与登录功能,使用 MD5 加密密码、Spring Validation 参数校验及 JWT 认证。JWT 工具类处理令牌生成与解析,并通过拦截器验证。Redis 优化登录功能,利用 ThreadLocal 存储用户信息。此外,还包括文章模块的相关功能,如文章分类管理、
30 2
|
20天前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
|
27天前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
54 2
|
1月前
|
存储 关系型数据库 MySQL
"Linux环境下MySQL数据库名及表名大小写敏感性设置详解:从配置到影响,确保数据库操作的准确与高效"
【8月更文挑战第9天】在Linux环境中,MySQL数据库名及表名的大小写敏感性是一项重要配置。默认情况下,MySQL在Linux上区分大小写,但这可通过配置文件 `/etc/my.cnf` 中的 `lower_case_table_names` 参数调整。该参数设为0时,名称存储时保持原样,查询时不区分大小写;设为1则全部转换为小写。通过编辑配置文件并重启MySQL服务,可根据需求灵活控制名称的大小写敏感性,确保数据一致性和应用兼容性。
50 3
|
14天前
|
关系型数据库 MySQL 机器人
Django入门到放弃之数据库配置
Django入门到放弃之数据库配置
|
18天前
|
开发框架 .NET 关系型数据库
【Azure 应用服务】App Service 通过门户配置数据库连接字符串不生效 
【Azure 应用服务】App Service 通过门户配置数据库连接字符串不生效 
|
27天前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
61 0
|
29天前
|
SQL 关系型数据库 MySQL
MySql⭐一、配置MySql数据库,并创建一个表单
MySql⭐一、配置MySql数据库,并创建一个表单