Pencerminan Database - Menggunakan Sertifikat untuk Koneksi Keluar

Berlaku untuk:SQL Server

Topik ini menjelaskan langkah-langkah untuk mengonfigurasi instans server untuk menggunakan sertifikat guna mengautentikasi koneksi keluar untuk pencerminan database. Konfigurasi koneksi keluar harus dilakukan sebelum Anda dapat menyiapkan koneksi masuk.

Catatan

Semua koneksi pencerminan pada instans server menggunakan titik akhir pencerminan database tunggal, dan Anda harus menentukan metode autentikasi instans server saat Membuat titik akhir.

Proses mengonfigurasi koneksi keluar, melibatkan langkah-langkah umum berikut:

  1. Di database master, buat Kunci Master database.

  2. Di database master, buat sertifikat terenkripsi pada instans server.

  3. Buat titik akhir untuk instans server menggunakan sertifikatnya.

  4. Cadangkan sertifikat ke file dan salin dengan aman ke sistem atau sistem lain.

Anda harus menyelesaikan langkah-langkah ini untuk setiap mitra dan saksi, jika ada.

Prosedur berikut menjelaskan langkah-langkah ini secara rinci. Untuk setiap langkah, prosedur ini memberikan contoh untuk mengonfigurasi instans server pada sistem bernama HOST_A. Bagian Contoh yang menyertainya menunjukkan langkah yang sama untuk instans server lain pada sistem bernama HOST_B.

Prosedur

Untuk mengonfigurasi instans server untuk koneksi pencerminan keluar (Di HOST_A)

  1. Pada database master, buat Kunci Master database, jika tidak ada. Untuk menampilkan kunci yang sudah ada untuk database, gunakan tampilan katalog sys.symmetric_keys .

    Untuk membuat Kunci Master database, gunakan perintah Transact-SQL berikut:

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';  
    GO  
    

    Gunakan kata sandi yang unik dan kuat, dan rekam di tempat yang aman.

    Untuk informasi selengkapnya, lihat MEMBUAT KUNCI MASTER (Transact-SQL) dan Membuat Kunci Master Database.

  2. Dalam database master, buat sertifikat terenkripsi pada instans server yang akan digunakan untuk koneksi keluarnya untuk pencerminan database.

    Misalnya, untuk membuat sertifikat untuk sistem HOST_A.

    Penting

    Jika Anda ingin menggunakan sertifikat selama lebih dari satu tahun, tentukan tanggal kedaluwarsa dalam waktu UTC dengan menggunakan opsi EXPIRY_DATE dalam pernyataan CREATE CERTIFICATE Anda. Selain itu, kami sarankan Anda menggunakan SQL Server Management Studio untuk membuat aturan Manajemen Berbasis Kebijakan untuk memberi tahu Anda saat sertifikat Anda kedaluwarsa. Menggunakan kotak dialog Buat Kondisi Baru Manajemen Kebijakan, buat aturan ini pada bidang @ExpirationDate faset Sertifikat. Untuk informasi selengkapnya, lihat Mengelola Server dengan Menggunakan Manajemen Berbasis Kebijakan dan Mengamankan SQL Server.

    USE master;  
    CREATE CERTIFICATE HOST_A_cert   
       WITH SUBJECT = 'HOST_A certificate for database mirroring',   
       EXPIRY_DATE = '11/30/2013';  
    GO  
    

    Untuk informasi selengkapnya, lihat MEMBUAT SERTIFIKAT (Transact-SQL).

    Untuk menampilkan sertifikat dalam database master , Anda bisa menggunakan pernyataan Transact-SQL berikut:

    USE master;  
    SELECT * FROM sys.certificates;  
    

    Untuk informasi selengkapnya, lihat sys.certificates (Transact-SQL).

  3. Pastikan bahwa titik akhir pencerminan database ada di setiap instans server.

    Jika titik akhir pencerminan database sudah ada untuk instans server, Anda harus menggunakan kembali titik akhir tersebut untuk sesi lain yang Anda buat pada instans server. Untuk menentukan apakah titik akhir pencerminan database ada pada instans server dan untuk melihat konfigurasinya, gunakan pernyataan berikut:

    SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc   
       FROM sys.database_mirroring_endpoints;  
    

    Jika tidak ada titik akhir, buat titik akhir yang menggunakan sertifikat ini untuk koneksi keluar dan yang menggunakan kredensial sertifikat untuk verifikasi pada sistem lain. Ini adalah titik akhir seluruh server yang digunakan oleh semua sesi pencerminan tempat instans server berpartisipasi.

    Misalnya, untuk membuat titik akhir pencerminan untuk contoh instans server di HOST_A.

    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  
    

    Untuk informasi selengkapnya, lihat MEMBUAT TITIK AKHIR (Transact-SQL).

  4. Cadangkan sertifikat dan salin ke sistem atau sistem lain. Ini diperlukan untuk mengonfigurasi koneksi masuk pada sistem lain.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';  
    GO  
    

    Untuk informasi selengkapnya, lihat SERTIFIKAT CADANGAN (Transact-SQL).

    Salin sertifikat ini menggunakan metode aman apa pun yang Anda pilih. Berhati-hatilah untuk menjaga keamanan semua sertifikat Anda.

Contoh kode dalam langkah-langkah sebelumnya mengonfigurasi koneksi keluar pada HOST_A.

Anda sekarang perlu melakukan langkah-langkah keluar yang setara untuk HOST_B. Langkah-langkah ini diilustrasikan di bagian Contoh berikut.

Contoh

Contoh berikut menunjukkan konfigurasi HOST_B untuk koneksi keluar.

USE master;  
--Create the database Master Key, if needed.  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';  
GO  
-- Make a certifcate on HOST_B server instance.  
CREATE CERTIFICATE HOST_B_cert   
   WITH SUBJECT = 'HOST_B certificate for database mirroring',   
   EXPIRY_DATE = '11/30/2013';  
GO  
--Create a mirroring endpoint for the server instance on 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  
--Backup HOST_B certificate.  
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';  
GO   
--Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.  

Salin sertifikat ke sistem lain menggunakan metode aman apa pun yang Anda pilih. Berhati-hatilah untuk menjaga keamanan semua sertifikat Anda.

Penting

Setelah menyiapkan koneksi keluar, Anda harus mengonfigurasi koneksi masuk pada setiap instans server untuk instans atau instans server lainnya. Untuk informasi selengkapnya, lihat Mengizinkan Titik Akhir Pencerminan Database untuk Menggunakan Sertifikat untuk Koneksi Masuk (Transact-SQL).

Untuk informasi tentang membuat database cermin, termasuk contoh Transact-SQL, lihat Menyiapkan Database Cermin untuk Pencerminan (SQL Server).

Untuk contoh Transact-SQL dalam membuat sesi mode berkinerja tinggi, lihat Contoh: Menyiapkan Pencerminan Database Menggunakan Sertifikat (Transact-SQL).

Keamanan .NET Framework

Kecuali Anda dapat menjamin bahwa jaringan Anda aman, kami sarankan Anda menggunakan enkripsi untuk koneksi pencerminan database.

Saat menyalin sertifikat ke sistem lain, gunakan metode salin aman.

Lihat Juga

Pilih Algoritma Enkripsi
Menyiapkan Database Cermin untuk Pencerminan (SQL Server)
ALTER ENDPOINT (Transact-SQL)
Contoh: Menyiapkan Pencerminan Database Menggunakan Sertifikat (Transact-SQL)
Titik Akhir Pencerminan Database (SQL Server)
Memecahkan Masalah Konfigurasi Pencerminan Database (SQL Server)
Menyiapkan Database Cermin Terenkripsi