All Products
Search
Document Center

Key Management Service:Klien JDBC Secrets

Last Updated:Jun 13, 2026

Saat menghubungkan ke database melalui JDBC, Anda dapat menyimpan kredensial database dalam secret RDS atau secret generik. Aplikasi Anda kemudian dapat menggunakan klien JDBC secrets untuk melakukan autentikasi ke database dengan secret dari KMS.

Ikhtisar SDK

Klien JDBC secrets dirancang untuk menghubungkan ke database menggunakan JDBC. Klien ini menyederhanakan integrasi dengan secara otomatis mengambil secret dari KMS untuk mengautentikasi koneksi database. Untuk skenario lain yang melibatkan pengambilan dan penggunaan secret, kami menyarankan menggunakan klien secrets terlebih dahulu, diikuti oleh SDK instans KMS dan SDK Alibaba Cloud. Untuk informasi lebih lanjut, lihat Referensi SDK.

Catatan

Anda hanya dapat mengelola secret dengan menggunakan SDK Alibaba Cloud.

Klien JDBC secrets menyediakan fitur-fitur berikut:

  • Mendukung Java Database Connectivity (JDBC), termasuk koneksi yang menggunakan connection pool database (seperti c3p0 dan DBCP) serta data source.

  • Mendukung empat jenis database: MySQL, SQL Server, PostgreSQL, dan MariaDB.

  • Mendukung interval refresh kustom untuk secret.

Catatan penggunaan

  • Jenis secret yang didukung: secret generik dan secret RDS.

    • Jika Anda menggunakan secret RDS, kami menyarankan menggunakan secret RDS managed dual-account.

    • Jika Anda menggunakan secret generik, nilai secret harus dalam format JSON berikut.

      {
          "AccountName":"<your-database-username>",
          "AccountPassword":"<your-database-password>"
      }
  • Bahasa pemrograman yang didukung: Java 8 atau versi lebih baru.

  • Connection pool database yang didukung: c3p0, DBCP, HikariCP, dan Druid.

Langkah 1: Buat kredensial akses

Skenario 1: Ambil secret menggunakan gateway bersama

Jenis jaringan yang didukung adalah jaringan publik dan VPC. Metode ini mendukung metode autentikasi berbasis RAM seperti peran RAM instans ECS, RamRoleArn, token STS, dan AccessKey. Untuk informasi lebih lanjut, lihat Kelola kredensial akses.

Peran RAM instans ECS

Peran RAM instans ECS memungkinkan Anda memperoleh kredensial akses temporary (token STS) dari dalam instans ECS untuk memanggil operasi API KMS tanpa perlu mengonfigurasi pasangan AccessKey.

Untuk informasi lebih lanjut, lihat Peran RAM instans.

  1. Login ke Konsol RAM dan buat peran RAM untuk layanan Alibaba Cloud tepercaya.

    • Jenis Entitas Tepercaya: Pilih Elastic Compute Service.

    • Entitas tepercaya: Pilih Elastic Compute Service (ECS).

  2. Berikan izin peran RAM untuk mengakses KMS.

    • Metode 1: Konfigurasikan kebijakan berbasis identitas

      Pada kolom Actions peran RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS ke peran RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.

      Catatan

      Anda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.

    • Metode 2: Konfigurasikan kebijakan berbasis resource

      KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.

  3. Login ke Konsol ECS dan sambungkan peran RAM ke instans ECS.image

RamRoleArn

Pengguna RAM atau layanan cloud dapat mengasumsikan peran untuk memperoleh izin temporary (token STS) alih-alih menggunakan kunci jangka panjang, yang mengurangi risiko kebocoran kunci. Misalnya, dalam tugas pemrosesan data temporary, pengguna RAM atau layanan cloud sementara mengasumsikan peran dengan RamRoleArn tertentu. Setelah tugas selesai, izin peran dicabut sehingga meminimalkan risiko eksposur.

  1. Buat pasangan AccessKey pengguna

    1. Login ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Users. Di halaman Users, klik nama pengguna RAM target.

    2. Sambungkan kebijakan sistem AliyunSTSAssumeRoleAccess atau kebijakan kustom yang mencakup aksi sts:AssumeRole ke pengguna RAM.

    3. Di tab Authentication, pada bagian AccessKey, klik Create AccessKey dan ikuti instruksi di layar.

  2. Buat dan otorisasi peran RAM:

    1. Di panel navigasi kiri, pilih Identities > Roles. Di halaman Roles, klik Create Role. Untuk informasi lebih lanjut, lihat Buat peran RAM.

    2. Berikan izin peran RAM untuk mengakses KMS.

      • Metode 1: Konfigurasikan kebijakan berbasis identitas

        Pada kolom Actions peran RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS ke peran RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.

        Catatan

        Anda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.

      • Metode 2: Konfigurasikan kebijakan berbasis resource

        KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.

  3. Dapatkan RamRoleArn dari peran RAM target. Untuk informasi lebih lanjut, lihat Lihat informasi tentang peran RAM.

    1. Di panel navigasi kiri, pilih Identities > Roles. Di halaman Roles, klik nama peran target.

    2. Di halaman detail peran, temukan RamRoleArn pada bagian ARN.

      Catatan

      RamRoleArn adalah Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM yang akan diasumsikan. Formatnya adalah acs:ram::$accountID:role/$roleName, di mana $accountID adalah ID akun Alibaba Cloud dan $roleName adalah nama peran RAM.

Token STS

Security Token Service (STS) menerbitkan kredensial akses temporary, yaitu token STS, kepada pengguna RAM atau peran RAM. Token ini memungkinkan akses ke KMS dengan izin tertentu selama periode validitas terbatas. Setelah token kedaluwarsa, token tersebut secara otomatis menjadi tidak valid.

  1. Login ke Konsol RAM untuk membuat pengguna RAM atau peran RAM. Untuk informasi lebih lanjut, lihat Buat pengguna RAM dan Buat peran RAM.

  2. Berikan izin AliyunSTSAssumeRoleAccess kepada pengguna RAM atau peran RAM. Untuk informasi lebih lanjut, lihat Kelola izin pengguna RAM dan Berikan izin ke peran RAM.

  3. Berikan izin pengguna RAM atau peran RAM untuk mengakses KMS.

    • Metode 1: Konfigurasikan kebijakan berbasis identitas

      Pada kolom Actions peran atau pengguna RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.

      Catatan

      Anda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.

    • Metode 2: Konfigurasikan kebijakan berbasis resource

      KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.

  4. Gunakan pengguna RAM atau peran RAM untuk memanggil operasi STS AssumeRole guna memperoleh kredensial akses STS temporary. Untuk informasi lebih lanjut, lihat AssumeRole.

AccessKey

Peringatan

Secara default, akun Alibaba Cloud memiliki izin administrator untuk semua resource, yang tidak dapat diubah. Untuk memastikan keamanan resource, kami menyarankan Anda menggunakan pengguna RAM untuk membuat pasangan AccessKey dan hanya memberikan izin yang diperlukan.

  1. Login ke Konsol RAM. Di halaman Users, klik nama pengguna RAM target.

  2. Di tab Authentication, pada bagian AccessKey, klik Create AccessKey dan ikuti instruksi di layar.

  3. Berikan izin pengguna RAM untuk mengakses KMS.

    • Metode 1: Konfigurasikan kebijakan berbasis identitas

      Pada kolom Actions pengguna RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS ke pengguna RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.

      Catatan

      Anda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.

    • Metode 2: Konfigurasikan kebijakan berbasis resource

      KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.

ClientKey (tidak disarankan)

  1. Login ke Konsol Key Management Service. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih Application Access > Multi-Cloud Access (formerly AAP).

  2. (Opsional) Buat aturan jaringan.

    Catatan

    Mengonfigurasi aturan jaringan untuk membatasi akses berdasarkan alamat IP sumber bersifat opsional. Namun, kami menyarankan mengonfigurasinya demi keamanan yang lebih baik.

    1. Klik tab Network Access Rules lalu klik Create Network Access Rule.

    2. Di panel Create Network Access Rule, atur Network Type ke Public, masukkan Allowed Source IP Addresses, lalu klik OK.

  3. Buat kebijakan izin.

    1. Klik tab Policies lalu klik Create Policy.

    2. Di panel Create Policy, konfigurasikan parameter untuk gateway bersama seperti dijelaskan di bawah ini, lalu klik OK.

      1. Scope: Shared KMS Gateway

      2. Accessible Resources: Pilih secret yang ingin Anda akses.

      3. (Opsional) Network Access Rules: Pilih aturan jaringan yang dibuat pada langkah sebelumnya.

  4. Buat titik akses aplikasi (AAP).

    1. Klik tab Application Access lalu klik Create AAP.

    2. Di panel Create AAP, atur Mode ke Standard Creation, lalu konfigurasikan parameter seperti dijelaskan di bawah ini.

      Parameter

      Deskripsi

      Authentication Method

      Pilih ClientKey.

      Encryption Password

      Masukkan string 8 hingga 64 karakter yang berisi angka, huruf, dan karakter khusus: ~!@#$%^&*?_-.

      Validity Period

      Penting

      Kami menyarankan mengatur periode validitas menjadi satu tahun untuk mengurangi risiko kebocoran ClientKey. Pastikan untuk merotasi ClientKey sebelum kedaluwarsa agar tidak terjadi gangguan layanan. Untuk informasi lebih lanjut, lihat Rotasi ClientKey.

      Policies

      Pilih kebijakan izin yang telah Anda buat pada langkah sebelumnya.

    3. Klik OK. Browser secara otomatis mengunduh ClientKey. ClientKey mencakup file-file berikut:

      • Credential (ClientKeyContent): Nama file default adalah clientKey_****.json.

      • Credential password (ClientKeyPassword): Nama file default adalah clientKey_****_Password.txt.

Skenario 2: Ambil secret menggunakan gateway khusus (tidak disarankan)

Jenis jaringannya adalah jaringan pribadi KMS, dan ClientKey adalah satu-satunya kredensial akses yang didukung.

Anda dapat membuat ClientKey menggunakan mode Quick Create atau Standard Create. Untuk informasi lebih lanjut tentang ClientKey, lihat Titik akses aplikasi dan Buat titik akses aplikasi.

  • Metode 1: Quick Create

    Metode ini praktis dan efisien, sehingga cocok untuk pengujian dan pengembangan cepat. Kredensial akses yang dibuat dengan cara ini memiliki akses penuh ke semua resource dalam instans KMS.

    1. Login ke Konsol Key Management Service. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih Application Access > Multi-Cloud Access (formerly AAP).

    2. Di tab Application Access, klik Create AAP. Di panel Create AAP, konfigurasikan parameter.

      Parameter

      Deskripsi

      Mode

      Pilih Quick Creation.

      Scope (KMS Instance)

      Pilih instans KMS yang perlu diakses oleh aplikasi Anda.

      Application Access Point Name

      Masukkan nama untuk titik akses aplikasi.

      Authentication Method

      Ini diatur ke ClientKey dan tidak dapat diubah.

      Credential encryption algorithm

      Pilih algoritma enkripsi yang digunakan untuk mengenkripsi ClientKey. Nilai yang valid: TripleDES-CBC dan RC2-CBC (default).

      Default Permission Policy

      Nilainya adalah key/* secret/* dan tidak dapat diubah. Artinya, aplikasi dapat mengakses semua kunci dan secret dalam instans KMS yang ditentukan.

    3. Klik OK. Browser secara otomatis mengunduh ClientKey. ClientKey mencakup file-file berikut:

      • Credential (ClientKeyContent): Nama file default adalah clientKey_****.json.

      • Credential password (ClientKeyPassword): Nama file default adalah clientKey_****_Password.txt.

  • Metode 2: Standard Create

    Jika Anda perlu mengonfigurasi izin akses detail halus untuk resource, kami menyarankan menggunakan metode Standard Create.

    1. Ikuti petunjuk Standard Create di Buat titik akses aplikasi untuk membuat ClientKey guna mengakses gateway khusus. Parameter utama dijelaskan di bawah ini:

      1. Saat mengonfigurasi aturan jaringan, pilih Private untuk jenis jaringan.

      2. Saat mengonfigurasi cakupan aturan izin, pilih KMS Instance ID yang sesuai.

    2. Setelah pembuatan, browser Anda secara otomatis mengunduh ClientKey, yang mencakup:

      • Credential (ClientKeyContent): File ini bernama clientKey_****.json secara default.

      • Credential password (ClientKeyPassword): File ini bernama clientKey_****_Password.txt secara default.

Langkah 2: Instal klien

Instal klien JDBC secrets menggunakan 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>
Catatan

Kami menyarankan Anda menginstal versi terbaru SDK. Untuk informasi lebih lanjut tentang instalasi dan kode sumber, kunjungi aliyun-secretsmanager-jdbc.

Langkah 3: Inisialisasi klien dengan secretsmanager.properties

Tambahkan file konfigurasi bernama secretsmanager.properties ke proyek Anda. Parameter yang perlu Anda konfigurasikan bervariasi tergantung pada kredensial akses.

AccessKey

## Jenis kredensial akses.
credentials_type=ak
## ID AccessKey.
credentials_access_key_id=#credentials_access_key_id#
## Rahasia AccessKey.
credentials_access_secret=#credentials_access_secret#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000

RamRoleArn

## Jenis kredensial akses.
credentials_type=ram_role
## ID AccessKey.
credentials_access_key_id=#credentials_access_key_id#
## Rahasia AccessKey.
credentials_access_secret=#credentials_access_secret#
## Nama sesi kredensial akses.
credentials_role_session_name=#credentials_role_session_name#
## ARN peran RAM.
credentials_role_arn=#credentials_role_arn#
## Kebijakan kredensial akses.
credentials_policy=#credentials_policy#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000

Peran RAM instans ECS

## Jenis kredensial akses.
credentials_type=ecs_ram_role
## Nama peran RAM ECS.
credentials_role_name=#credentials_role_name#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000

Token STS

## Jenis kredensial akses.
credentials_type=sts
## ID AccessKey.
credentials_access_key_id=#credentials_access_key_id#
## Rahasia AccessKey.
credentials_access_secret=#credentials_access_secret#
## Nama sesi kredensial akses.
credentials_role_session_name=#credentials_role_session_name#
## ARN peran RAM.
credentials_role_arn=#credentials_role_arn#
## Kebijakan kredensial akses.
credentials_policy=#credentials_policy#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000

ClientKey (gateway bersama)

## Jenis kredensial akses.
credentials_type=client_key
# Jalur file ClientKey.
client_key_private_key_path=#your client key private key file path#
## Kata sandi dekripsi ClientKey. Anda dapat membaca kata sandi dari variabel lingkungan atau 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#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
## Konfigurasi berikut mengatur interval refresh secret menjadi 1 jam.
refresh_secret_ttl=3600000

ClientKey (gateway khusus)

Pendekatan 1: Konfigurasikan jalur file


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>"}]
              

Pendekatan 2: Konfigurasikan kata sandi melalui variabel lingkungan


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>"}]
              

Langkah 4: Hubungkan ke database

Penting

Contoh berikut hanya menampilkan properti yang harus Anda ubah. Konfigurasikan properti lain berdasarkan kebutuhan bisnis Anda.

Hubungkan ke database menggunakan JDBC

  • Database MySQL

    Catatan

    Ganti #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCSample {
        public static void main(String[] args) throws Exception {
            // Muat driver JDBC secrets Alibaba Cloud: 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();
            }
        }
    }
  • Database SQL Server

    Catatan

    Ganti #your-sqlserver-secret-name#, <your-sqlserver-ip>, <your-sqlserver-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCSqlServerSample {
    
        public static void main(String[] args) throws Exception{
            // Muat driver JDBC secrets Alibaba Cloud: 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();
            }
        }
    }
  • Database PostgreSQL

    Catatan

    Ganti #your-postgresql-secret-name#, <your-postgresql-ip>, <your-postgresql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCPostgreSQLSample {
        public static void main(String[] args) throws Exception {
            // Muat driver JDBC secrets Alibaba Cloud: 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();
            }
        }
    }
  • Database MariaDB

    Catatan

    Ganti #your-mariadb-secret-name#, <your-mariadb-ip>, <your-mariadb-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class SecretManagerJDBCMarialDBSample {
    
    	public static void main(String[] args) throws Exception{
    		// Muat driver JDBC secrets Alibaba Cloud: 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();
    		}
    	}
    }

Hubungkan menggunakan connection pool database

Atur c3p0.user, c3p0.driverClass, dan c3p0.jdbcUrl dalam file konfigurasi c3p0.properties. c3p0.user adalah nama secret, c3p0.driverClass adalah nama kelas driver JDBC secrets Alibaba Cloud, dan c3p0.jdbcUrl harus dimulai dengan secrets-manager.

  • Database MySQL

    Catatan

    Ganti #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    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>
  • Database SQL Server

    Catatan

    Ganti #your-sqlserver-secret-name#, <your-sqlserver-ip>, <your-sqlserver-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    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>
  • Database PostgreSQL

    Catatan

    Ganti #your-postgresql-secret-name#, <your-postgresql-ip>, <your-postgresql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    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>
  • Database MariaDB

    Catatan

    Ganti #your-mariadb-secret-name#, <your-mariadb-ip>, <your-mariadb-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

    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>

Hubungkan dengan menggunakan sumber data

Contoh ini menggunakan ComboPooledDataSource c3p0 dan database MySQL. Tambahkan konfigurasi berikut ke file konfigurasi Spring.

Catatan

Ganti #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

<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>
Catatan

Atur nilai parameter maxPoolSize, minPoolSize, dan initialPoolSize berdasarkan kebutuhan bisnis Anda.

Hubungkan menggunakan connection pool Druid

Contoh ini menggunakan database MySQL. Anda harus mengubah properti berikut dalam file konfigurasi.

Catatan

Ganti #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.

  • Gunakan file konfigurasi 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>
  • Gunakan konfigurasi bean

    • Metode 1: File konfigurasi 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>
      
    • Metode 2: Penyuntikan properti

      Buat kelas konfigurasi dalam aplikasi Anda untuk memuat informasi koneksi database.

      @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;
          }
      }