Contoh: Menyiapkan Pencerminan Database Menggunakan Sertifikat (Transact-SQL)
Berlaku untuk: SQL Server
Contoh ini memperlihatkan semua tahapan yang diperlukan untuk membuat sesi pencerminan database menggunakan autentikasi berbasis sertifikat. Contoh dalam topik ini menggunakan Transact-SQL. 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. Berhati-hatilah untuk menjaga keamanan semua sertifikat Anda.
Contoh
Contoh berikut menunjukkan apa yang harus dilakukan pada satu mitra yang berada di HOST_A. Dalam contoh ini, kedua mitra adalah instans server default pada tiga sistem komputer. Dua instans server berjalan di domain Windows yang tidak tepercaya, sehingga autentikasi berbasis sertifikat diperlukan.
Peran utama awal diambil oleh HOST_A, dan peran cermin diambil oleh HOST_B.
Menyiapkan pencerminan database menggunakan sertifikat melibatkan empat tahap umum, di mana tiga tahap-1, 2, dan 4-ditunjukkan oleh contoh ini. Tahapan ini adalah sebagai berikut:
-
Contoh ini menunjukkan langkah-langkah untuk:
Mengonfigurasi Host_A untuk koneksi keluar.
Mengonfigurasi Host_B untuk koneksi keluar.
Untuk informasi tentang tahap penyiapan pencerminan database ini, lihat Mengizinkan Titik Akhir Pencerminan Database untuk Menggunakan Sertifikat untuk Koneksi Keluar (Transact-SQL).
-
Contoh ini menunjukkan langkah-langkah untuk:
Mengonfigurasi Host_A untuk koneksi masuk.
Mengonfigurasi Host_B untuk koneksi masuk.
Untuk informasi tentang tahap penyiapan pencerminan database ini, lihat Mengizinkan Titik Akhir Pencerminan Database untuk Menggunakan Sertifikat untuk Koneksi Masuk (Transact-SQL).
Membuat Database Cermin
Untuk informasi tentang cara membuat database cermin, lihat Menyiapkan Database Cermin untuk Pencerminan (SQL Server).
Mengonfigurasi Koneksi Keluar
Untuk mengonfigurasi Host_A untuk koneksi keluar
Pada database master, buat kunci master database, jika diperlukan.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>'; GO
Buat sertifikat untuk instans server ini.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GO
Buat titik akhir pencerminan untuk instans server menggunakan sertifikat.
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
Cadangkan sertifikat HOST_A, dan salin ke sistem lain, HOST_B.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Dengan menggunakan metode salin aman apa pun, salin C:\HOST_A_cert.cer ke HOST_B.
Untuk mengonfigurasi Host_B untuk koneksi keluar
Pada database master, buat kunci master database, jika diperlukan.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; GO
Buat sertifikat pada instans server HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GO
Buat titik akhir pencerminan untuk instans server di 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
Cadangkan sertifikat HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GO
Dengan menggunakan metode salin aman apa pun, salin C:\HOST_B_cert.cer ke HOST_A.
Untuk informasi selengkapnya, lihat Mengizinkan Titik Akhir Pencerminan Database untuk Menggunakan Sertifikat untuk Koneksi Keluar (Transact-SQL).
Mengonfigurasi Koneksi Masuk
Untuk mengonfigurasi Host_A untuk koneksi masuk
Buat login di HOST_A untuk HOST_B.
USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; GO
--Buat pengguna untuk login tersebut.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
--Kaitkan sertifikat dengan pengguna.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
Berikan izin CONNECT pada login untuk titik akhir pencerminan jarak jauh.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
Untuk mengonfigurasi Host_B untuk koneksi masuk
Buat login di HOST_B untuk HOST_A.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GO
Buat pengguna untuk login tersebut.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GO
Kaitkan sertifikat dengan pengguna.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GO
Berikan izin CONNECT pada login untuk titik akhir pencerminan jarak jauh.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login]; GO
Penting
Jika Anda berniat untuk berjalan dalam mode keamanan tinggi dengan failover otomatis, Anda harus mengulangi langkah-langkah penyiapan yang sama untuk mengonfigurasi saksi untuk koneksi keluar dan masuk. Menyiapkan koneksi masuk ketika saksi terlibat mengharuskan Anda menyiapkan login dan pengguna untuk saksi pada kedua mitra dan untuk kedua mitra pada saksi.
Untuk informasi selengkapnya, lihat Mengizinkan Titik Akhir Pencerminan Database untuk Menggunakan Sertifikat untuk Koneksi Masuk (Transact-SQL).
Membuat Database Cermin
Untuk informasi tentang cara membuat database cermin, lihat Menyiapkan Database Cermin untuk Pencerminan (SQL Server).
Mengonfigurasi Mitra Pencerminan
Pada instans server cermin pada HOST_B, atur instans server pada HOST_A sebagai mitra (menjadikannya instans server utama awal). Ganti alamat jaringan yang valid untuk
TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024
. Untuk informasi selengkapnya, lihat Menentukan Alamat Jaringan Server (Pencerminan Database).--At HOST_B, set server instance on HOST_A as partner (principal server): ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024'; GO
Pada instans server utama di HOST_A, atur instans server pada HOST_B sebagai mitra (menjadikannya instans server cermin awal). Ganti alamat jaringan yang valid untuk
TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024
.--At HOST_A, set server instance on HOST_B as partner (mirror server). ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024'; GO
Contoh ini mengasumsikan bahwa sesi akan berjalan dalam mode performa tinggi. Untuk mengonfigurasi sesi ini untuk mode performa tinggi, pada instans server utama (pada HOST_A), atur keamanan transaksi ke NONAKTIF.
--Change to high-performance mode by turning off transacton safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GO
Catatan
Jika Anda berniat untuk berjalan dalam mode keselamatan tinggi dengan failover otomatis, biarkan keamanan transaksi diatur ke PENUH (pengaturan default) dan tambahkan bukti sesegera mungkin setelah menjalankan pernyataan 'partner_server' MITRA SET kedua. Perhatikan bahwa saksi harus terlebih dahulu dikonfigurasi untuk koneksi keluar dan masuk.
Tugas Terkait
Izinkan Titik Akhir Pencerminan Database Menggunakan Sertifikat untuk Koneksi Masuk (Transact-SQL)
Izinkan Titik Akhir Pencerminan Database Menggunakan Sertifikat untuk Koneksi Keluar (Transact-SQL)
Manajemen Login dan Pekerjaan Setelah Pengalihan Peran (SQL Server)
Mengelola Metadata Saat Membuat Database Tersedia di Instans Server Lain (SQL Server) (SQL Server)
Memecahkan Masalah Konfigurasi Pencerminan Database (SQL Server)
Lihat Juga
Keamanan Transportasi untuk Pencerminan Database dan Grup Ketersediaan AlwaysOn (SQL Server)
Tentukan Alamat Jaringan Server (Pencerminan Database)
Titik Akhir Pencerminan Database (SQL Server)
Menggunakan Sertifikat untuk Titik Akhir Database Mirroring (Transact-SQL)
MENGUBAH DATABASE (T-SQL)
Security Center untuk Mesin Database SQL Server dan Azure SQL Database