Todos os produtos
Search
Central de documentação

Key Management Service:Cliente JDBC de segredos

Última atualização: Sep 21, 2026

Ao conectar-se a um banco de dados com JDBC, você pode armazenar suas credenciais de banco de dados em um segredo do RDS ou em um segredo genérico. Em seguida, sua aplicação pode usar o cliente JDBC de segredos para se autenticar no banco de dados com o segredo do KMS.

Visão geral do SDK

O cliente JDBC de segredos é projetado para conectar-se a bancos de dados por meio do JDBC. O cliente simplifica a integração ao recuperar automaticamente um segredo do KMS para autenticar a conexão com o banco de dados. Para outros cenários de recuperação e uso de segredos, recomendamos o uso inicial do cliente de segredos, seguido do SDK da instância do KMS e do Alibaba Cloud SDK. Para mais informações, consulte SDK Reference.

Nota

Você pode gerencie segredos apenas com o Alibaba Cloud SDK.

O cliente JDBC de segredos oferece os seguintes recursos:

  • Suporta o Java Database Connectivity (JDBC), incluindo conexões com pools de conexão de banco de dados (como c3p0 e DBCP) e source de dados.

  • Suporta quatro tipos de banco de dados: MySQL, SQL Server, PostgreSQL e MariaDB.

  • Suporta intervalos de atualização personalizados para segredos.

Notas de uso

  • Tipos de segredo compatíveis: segredos genéricos e segredos do RDS.

    • Ao usar um segredo do RDS, recomendamos um segredo do RDS gerenciado com conta dupla.

    • Ao usar um segredo genérico, o valor do segredo deve estar no seguinte formato JSON:

      {
          "AccountName":"<YOUR-DATABASE-USERNAME>",
          "AccountPassword":"<YOUR-DATABASE-PASSWORD>"
      }
  • Linguagem de programação compatível: Java 8 ou superior.

  • Pools de conexão de banco de dados compatíveis: c3p0, DBCP, HikariCP e Druid.

Etapa 1: Crie uma credencial de acesso

Cenário 1: Recuperar segredos por meio de um gateway compartilhado

As redes compatíveis são a rede pública e a VPC. Este método é compatível com autenticações baseadas no RAM, como função RAM de instância ECS, RamRoleArn, token STS e AccessKey. Para mais informações, consulte Manage access credentials.

Função RAM de instância ECS

A função RAM de instância ECS permite obter uma credencial de acesso temporária (token STS) diretamente de uma instância ECS para chamar operações da API do KMS, sem configurar um par de AccessKey.

Para mais informações, consulte Instance RAM roles.

  1. Acesse o RAM console e crie uma função RAM para um service confiável do Alibaba Cloud.

    • Trusted Entity Type: selecione Elastic Compute Service.

    • Trusted entity: selecione Elastic Compute Service (ECS).

  2. Conceda permissões de acesso ao KMS para a função RAM.

    • Método 1: configure uma política baseada em identidade

      Na coluna Actions da função RAM, clique em Grant Permission para anexar uma política de permissão do sistema integrada do KMS à função RAM. Para mais informações sobre as políticas de permissão do sistema do KMS, consulte System policies for KMS.

      Nota

      Você também pode criar políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.

    • Método 2: configure uma política baseada em recursos

      O KMS é compatível com políticas baseadas em recursos que concedem permissões de acesso a chaves e segredos individuais. Use essas políticas para controlar quais contas do Alibaba Cloud, usuários do RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Key policies e Secret policies.

  3. Acesse o ECS console e anexe a função RAM a uma instância ECS.

RamRoleArn

Usuários do RAM ou service de cloud podem assumir uma função para obter permissões temporárias (token STS) em vez de usar chaves de longo prazo, reduzindo o risco de vazamento. Por exemplo, em uma tarefa temporária de processamento de dados, um usuário ou service assume temporariamente uma função com um RamRoleArn específico. Após a conclusão da tarefa, as permissões são revogadas, o que minimiza o risco de exposição.

  1. Crie um par de AccessKey para o usuário:

    1. Acesse o RAM console. No painel de navegação à esquerda, escolha Identities > Users. Na página Users, clique em nome do usuário RAM de destino.

    2. Anexe a política do sistema AliyunSTSAssumeRoleAccess ou uma política personalizada com a ação sts:AssumeRole ao usuário RAM.

    3. Na aba Secret Management, na seção AccessKey, clique em Create AccessKey.

  2. Crie e autorize uma função RAM:

    1. No painel de navegação à esquerda, escolha Identities > Roles. Na página Roles, clique em Create Role. Para mais informações, consulte Create a RAM role.

    2. Conceda permissões de acesso ao KMS para a função RAM.

      • Método 1: configure uma política baseada em identidade

        Na coluna Actions da função RAM, clique em Grant Permission para anexar uma política de permissão do sistema integrada do KMS à função RAM. Para mais informações sobre as políticas de permissão do sistema do KMS, consulte System policies for KMS.

        Nota

        Você também pode criar políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.

      • Método 2: configure uma política baseada em recursos

        O KMS é compatível com políticas baseadas em recursos que concedem permissões de acesso a chaves e segredos individuais. Use essas políticas para controlar quais contas do Alibaba Cloud, usuários do RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Key policies e Secret policies.

  3. Obtenha o RamRoleArn da função RAM de destino. Para mais informações, consulte View the information about a RAM role.

    1. No painel de navegação à esquerda, escolha Identities > Roles. Na página Roles, clique em nome da função de destino.

    2. Na página de detalhes da função, encontre o RamRoleArn na seção ARN.

      Nota

      O RamRoleArn é o Alibaba Cloud Resource Name (ARN) da função RAM a ser assumida. O formato é acs:ram::$accountID:role/$roleName, onde $accountID é o ID da conta do Alibaba Cloud e $roleName é o nome da função RAM.

Token STS

O Security Token Service (STS) emite uma credencial de acesso temporária, o token STS, para um usuário ou função RAM. Esse token permite o acesso ao KMS com permissões específicas por um período limitado. Após a expiração, o token torna-se inválido automaticamente.

  1. Acesse o RAM console para criar um usuário RAM ou uma função RAM. Para mais informações, consulte Create a RAM user e Create a RAM role.

  2. Conceda a permissão AliyunSTSAssumeRoleAccess ao usuário ou função RAM. Para mais informações, consulte Manage RAM user permissions e Grant permissions to a RAM role.

  3. Conceda permissões de acesso ao KMS para o usuário ou função RAM.

    • Método 1: configure uma política baseada em identidade

      Na coluna Actions da função ou usuário RAM, clique em Grant Permission para anexar uma política de permissão do sistema integrada do KMS. Para mais informações sobre as políticas de permissão do sistema do KMS, consulte System policies for KMS.

      Nota

      Você também pode criar políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.

    • Método 2: configure uma política baseada em recursos

      O KMS é compatível com políticas baseadas em recursos que concedem permissões de acesso a chaves e segredos individuais. Use essas políticas para controlar quais contas do Alibaba Cloud, usuários do RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Key policies e Secret policies.

  4. Use o usuário ou função RAM para chamar a operação AssumeRole do STS e obter uma credencial de acesso STS temporária. Para mais informações, consulte AssumeRole.

AccessKey

Aviso

Por padrão, uma conta do Alibaba Cloud possui permissões de administrador para todos os recursos, e isso não pode ser modificado. Para garantir a segurança, recomendamos o uso de um usuário RAM para criar um par de AccessKey e conceder apenas as permissões necessárias.

  1. Acesse o RAM console. Na página Users, clique em nome do usuário RAM de destino.

  2. Na aba Secret Management, na seção AccessKey, clique em Create AccessKey.

  3. Conceda permissões de acesso ao KMS para o usuário RAM.

    • Método 1: configure uma política baseada em identidade

      Na coluna Actions do usuário RAM, clique em Grant Permission para anexar uma política de permissão do sistema integrada do KMS ao usuário RAM. Para mais informações sobre as políticas de permissão do sistema do KMS, consulte System policies for KMS.

      Nota

      Você também pode criar políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.

    • Método 2: configure uma política baseada em recursos

      O KMS é compatível com políticas baseadas em recursos que concedem permissões de acesso a chaves e segredos individuais. Use essas políticas para controlar quais contas do Alibaba Cloud, usuários do RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Key policies e Secret policies.

ClientKey (não recomendado)

  1. Acesse o Key Management Service console. Na barra de navegação superior, selecione uma região. No painel de navegação à esquerda, escolha Application Access > Multi-Cloud Access (formerly AAP).

  2. (Opcional) Crie uma regra de rede.

    Nota

    A configuração de uma regra de rede para restringir o acesso por endereço IP de origem é opcional. No entanto, recomendamos essa configuração para maior segurança.

    1. Clique na aba Network Access Rules e, em seguida, clique em Create Network Access Rule.

    2. No painel Create Network Access Rule, defina Network Type como Public, insira os Allowed Source IP Addresses e clique em OK.

  3. Crie uma política de permissão.

    1. Clique na aba Policies e, em seguida, clique em Create Policy.

    2. No painel Create Policy, configure os parâmetros para o gateway compartilhado conforme descrito abaixo e, em seguida, clique em OK.

      1. Scope: Shared KMS Gateway

      2. Accessible Resources: selecione os segredos que você deseja acessar.

      3. (Opcional) Network Access Rules: selecione a regra de rede criada na etapa anterior.

  4. Crie um application access point (AAP).

    1. Clique na aba Application Access e, em seguida, clique em Create AAP.

    2. No painel Create AAP, defina Mode como Standard Creation e, em seguida, configure os parâmetros conforme descrito abaixo.

      Parâmetro

      Descrição

      Authentication Method

      Selecione ClientKey.

      Encryption Password

      Insira uma string de 8 a 64 caracteres que contenha dígitos, letras e caracteres especiais: ~!@#$%^&*?_-.

      Validity Period

      Importante

      Recomendamos definir o período de validade como um ano para reduzir o risco de vazamento do ClientKey. Certifique-se de rotacionar o ClientKey antes da expiração para evitar interrupções no service. Para mais informações, consulte Rotate a ClientKey.

      Policies

      Selecione a política de permissão criada na etapa anterior.

    3. Clique em OK. O navegador baixa automaticamente o ClientKey. O ClientKey inclui os seguintes arquivos:

      • Credential (ClientKeyContent): O nome padrão do arquivo é clientKey_****.json.

      • Credential password (ClientKeyPassword): O nome padrão do arquivo é clientKey_****_Password.txt.

Cenário 2: Recuperar segredos por meio de um gateway dedicado (não recomendado)

O tipo de rede é uma rede privada do KMS, e o ClientKey é a única credencial de acesso compatível.

Você pode criar um ClientKey nos modos Quick Create ou Standard Create. Para mais informações sobre o ClientKey, consulte Application access points e Create an application access point.

  • Método 1: Quick Create

    Este método é prático e eficiente, ideal para testes e desenvolvimentos rápidos. A credencial de acesso criada dessa forma possui acesso total a todos os recursos na instância do KMS.

    1. Acesse o Key Management Service console. Na barra de navegação superior, selecione uma região. No painel de navegação à esquerda, escolha Application Access > Access Control (Formerly Access Point) .

    2. Na aba Application Access, clique em Create AAP. No painel Create AAP, configure os parâmetros.

      Parâmetro

      Descrição

      Mode

      Selecione Quick Creation.

      Scope (KMS Instance)

      Selecione a instância do KMS que sua aplicação precisa acessar.

      Application Access Point Name

      Insira um nome para o application access point.

      Authentication Method

      Definido como ClientKey, não pode ser alterado.

      Encryption Algorithm

      Selecione o algoritmo de criptografia para o ClientKey. Valores válidos: TripleDES-CBC e RC2-CBC (padrão).

      Nota

      O RC2-CBC funciona na maioria dos ambientes e é o mais recomendado. Caso o seu ambiente possua requisitos de algoritmo mais rigorosos e não seja compatível com o RC2-CBC, selecione TripleDES-CBC.

      Default Permission Policy

      O valor é key/ secret/ e não pode ser alterado. Isso significa que a aplicação pode acessar todas as chaves e segredos na instância do KMS especificada.

    3. Clique em OK. O navegador baixa automaticamente o ClientKey. O ClientKey inclui os seguintes arquivos:

      • Credential (ClientKeyContent): O nome padrão do arquivo é clientKey_****.json.

      • Credential password (ClientKeyPassword): O nome padrão do arquivo é clientKey_****_Password.txt.

  • Método 2: Standard Create

    Caso precise configure permissões de acesso refinadas para recursos, recomendamos o método Standard Create.

    1. Siga as instruções do Standard Create em Create an application access point para criar um ClientKey para acessar o gateway dedicado. Os principais parâmetros são descritos abaixo:

      1. Ao configure as regras de rede, selecione Private para o tipo de rede.

      2. Ao configure o escopo da regra de permissão, selecione o KMS Instance ID correspondente.

    2. Após a criação, o navegador baixa automaticamente o ClientKey, que inclui:

      • Credential (ClientKeyContent): O nome padrão do arquivo é clientKey_****.json.

      • Credential password (ClientKeyPassword): O nome padrão do arquivo é clientKey_****_Password.txt.

Etapa 2: Instale o cliente

Instale o cliente JDBC de segredos por meio do Maven.

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-secretsmanager-jdbc</artifactId>
    <version>x.x.x</version>
</dependency>
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.x.x</version>
</dependency>
Nota

Recomendamos a instalação da versão mais recente do SDK. Para mais informações sobre a instalação e o código source, visite aliyun-secretsmanager-jdbc.

Etapa 3: Inicializar o cliente com o secretsmanager.properties

Adicione um arquivo de configuração chamado secretsmanager.properties ao seu projeto. Os parâmetros de configuração variam de acordo com a credencial de acesso.

AccessKey

## The type of the access credential.
credentials_type=ak
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

RamRoleArn

## The type of the access credential.
credentials_type=ram_role
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The session name of the access credential.
credentials_role_session_name=#credentials_role_session_name#
## The ARN of the RAM role.
credentials_role_arn=#credentials_role_arn#
## The policy of the access credential.
credentials_policy=#credentials_policy#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

Função RAM de instância ECS

## The type of the access credential.
credentials_type=ecs_ram_role
## The name of the ECS RAM role.
credentials_role_name=#credentials_role_name#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

Token STS

## The type of the access credential.
credentials_type=sts
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The session name of the access credential.
credentials_role_session_name=#credentials_role_session_name#
## The ARN of the RAM role.
credentials_role_arn=#credentials_role_arn#
## The policy of the access credential.
credentials_policy=#credentials_policy#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000

ClientKey (gateway compartilhado)

## The type of the access credential.
credentials_type=client_key
# The file path of the ClientKey.
client_key_private_key_path=#your client key private key file path#
## The decryption password of the ClientKey. You can read the password from an environment variable or a file.
client_key_password_from_env_variable=#your client key private key password environment variable name#
client_key_password_from_file_path=#your client key private key password file path#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
## The following configuration sets the secret refresh interval to 1 hour.
refresh_secret_ttl=3600000

ClientKey (gateway dedicado)

Abordagem 1: Configure o caminho do arquivo


cache_client_dkms_config_info=[{"regionId":"<YOUR_DKMS_REGION_ID>","endpoint":"<YOUR_DKMS_ENDPOINT>","passwordFromFilePath":"<YOUR_PASSWORD_FILE_PATH>","clientKeyFile":"<YOUR_CLIENT_KEY_FILE_PATH>","ignoreSslCerts":false,"caFilePath":"<YOUR_CA_CERTIFICATE_FILE_PATH>"}]
              

Abordagem 2: Configure a senha via variável de ambiente


cache_client_dkms_config_info=[{"regionId":"<YOUR_DKMS_REGION_ID>","endpoint":"<YOUR_DKMS_ENDPOINT>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<YOUR_CLIENT_KEY_FILE_PATH>","ignoreSslCerts":false,"caFilePath":"<YOUR_CA_CERTIFICATE_FILE_PATH>"}]
              

Etapa 4: Conectar-se ao banco de dados

Importante

Os exemplos a seguir mostram apenas as propriedades que exigem modificação. Configure as demais propriedades com base nos requisitos do seu negócio.

Conectar-se a um banco de dados usando JDBC

  • Banco de dados MySQL

    Nota

    Substitua #your-mysql-secret-name#, <YOUR-MYSQL-IP>, <YOUR-MYSQL-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCSample {
        public static void main(String[] args) throws Exception {
            // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver
            Class.forName("com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver");
            Connection connect = null;
            try {
                connect = DriverManager.getConnection("secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>", "#your-mysql-secret-name#","");
            } catch(SQLException e) {
                e.printStackTrace();
            }
        }
    }
  • Banco de dados SQL Server

    Nota

    Substitua #your-sqlserver-secret-name#, <YOUR-SQLSERVER-IP>, <YOUR-SQLSERVER-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCSqlServerSample {
    
        public static void main(String[] args) throws Exception{
            // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver
            Class.forName("com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver");
            Connection connect = null;
            try {
                connect = DriverManager.getConnection("secrets-manager:sqlserver://<YOUR-SQLSERVER-IP>:<YOUR-SQLSERVER-PORT>;databaseName=<YOUR-DATABASE-NAME>", "#your-sqlserver-secret-name#", "");
            }  catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
  • Banco de dados PostgreSQL

    Nota

    Substitua #your-postgresql-secret-name#, <YOUR-POSTGRESQL-IP>, <YOUR-POSTGRESQL-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCPostgreSQLSample {
        public static void main(String[] args) throws Exception {
            // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver
            Class.forName("com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver");
            Connection connect = null;
            try {
                connect = DriverManager.getConnection("secrets-manager:postgresql://<YOUR-POSTGRESQL-IP>:<YOUR-POSTGRESQL-PORT>/<YOUR-DATABASE-NAME>", "#your-postgresql-secret-name#", "");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
  • Banco de dados MariaDB

    Nota

    Substitua #your-mariadb-secret-name#, <YOUR-MARIADB-IP>, <YOUR-MARIADB-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCMarialDBSample {
    
    	public static void main(String[] args) throws Exception{
    		// Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver
    		Class.forName("com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver");
    		Connection connect = null;
    		try {
    			connect = DriverManager.getConnection("secrets-manager:mariadb://<YOUR-MARIADB-IP>:<YOUR-MARIADB-PORT>/<YOUR-DATABASE-NAME>", "#your-mariadb-secret-name#", "");
    		}  catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    }

Conectar-se usando um pool de conexão de banco de dados

Defina c3p0.user, c3p0.driverClass e c3p0.jdbcUrl no arquivo de configuração c3p0.properties. c3p0.user é o nome do segredo, c3p0.driverClass é o nome da classe do driver JDBC de segredos do Alibaba Cloud, e c3p0.jdbcUrl deve começar com secrets-manager.

  • Banco de dados MySQL

    Nota

    Substitua #your-mysql-secret-name#, <YOUR-MYSQL-IP>, <YOUR-MYSQL-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    c3p0.user=#your-mysql-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>
  • Banco de dados SQL Server

    Nota

    Substitua #your-sqlserver-secret-name#, <YOUR-SQLSERVER-IP>, <YOUR-SQLSERVER-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    c3p0.user=#your-sqlserver-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:sqlserver://<YOUR-SQLSERVER-IP>:<YOUR-SQLSERVER-PORT>/<YOUR-DATABASE-NAME>
  • Banco de dados PostgreSQL

    Nota

    Substitua #your-postgresql-secret-name#, <YOUR-POSTGRESQL-IP>, <YOUR-POSTGRESQL-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    c3p0.user=#your-postgresql-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:postgresql://<YOUR-POSTGRESQL-IP>:<YOUR-POSTGRESQL-PORT>/<YOUR-DATABASE-NAME>
  • Banco de dados MariaDB

    Nota

    Substitua #your-mariadb-secret-name#, <YOUR-MARIADB-IP>, <YOUR-MARIADB-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

    c3p0.user=#your-mariadb-secret-name#
    c3p0.driverClass=com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver
    c3p0.jdbcUrl=secrets-manager:mariadb://<YOUR-MARIADB-IP>:<YOUR-MARIADB-PORT>/<YOUR-DATABASE-NAME>

Conectar-se usando uma fonte de dados

Este exemplo usa um c3p0 ComboPooledDataSource e um banco de dados MySQL. Adicione a seguinte configuração ao arquivo de configuração do Spring.

Nota

Substitua #your-mysql-secret-name#, <YOUR-MYSQL-IP>, <YOUR-MYSQL-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
      <property name="driverClass" value="com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver" />
      <property name="user" value="#your-mysql-secret-name#" />
      <property name="jdbcUrl" value="secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>" />
      <property name="maxPoolSize" value="***" />
      <property name="minPoolSize" value="***" />
      <property name="initialPoolSize" value="***" />
  </bean>
  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
      <property name="dataSource" ref="dataSource" />
  </bean>
Nota

Defina os valores dos parâmetros maxPoolSize, minPoolSize e initialPoolSize de acordo com os requisitos do seu negócio.

Conectar-se usando um pool de conexões Druid

Este exemplo usa um banco de dados MySQL. Modifique as seguintes propriedades no arquivo de configuração.

Nota

Substitua #your-mysql-secret-name#, <YOUR-MYSQL-IP>, <YOUR-MYSQL-PORT> e <YOUR-DATABASE-NAME> pelo nome real do segredo, endereço IP do servidor, porta e nome do banco de dados, respectivamente.

  • Use um arquivo de configuração properties

    username=#your-mysql-secret-name#
    driverClassName=com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver
    url=secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>
  • Use a configuração bean

    • Método 1: Arquivo de configuração XML

      <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
           <property name="username" value="${your-mysql-secret-name}" />
           <property name="driverClassName" value="com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver" />
           <property name="url" value="secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>" />
      </bean>
      
    • Método 2: Injeção de propriedade

      Crie uma classe de configuração na sua aplicação para carregar as informações de conexão do banco de dados.

      @Configuration
      public class DataConfig {
      
          @Value("${your-mysql-secret-name}")
          private String username;
      
          @Value("com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver")
          private String driverClassName;
      
          @Value("secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>")
          private String url;
      
          @Bean(name = "dataSource",initMethod = "init",destroyMethod = "close")
          public DruidDataSource dataSource(){
              DruidDataSource druidDataSource = new DruidDataSource();
              druidDataSource.setUsername(username);
              druidDataSource.setDriverClassName(driverClassName);
              druidDataSource.setUrl(url);
              return druidDataSource;
          }
      }