Membuat Titik Akhir Pencerminan Database untuk Autentikasi Windows (Transact-SQL)

Berlaku untuk:SQL Server

Topik ini menjelaskan cara membuat titik akhir pencerminan database yang menggunakan Autentikasi Windows di SQL Server dengan menggunakan Transact-SQL. Untuk mendukung pencerminan database atau grup ketersediaan AlwaysOn, setiap instans SQL Server memerlukan titik akhir pencerminan database. Instans server hanya dapat memiliki satu titik akhir pencerminan database, yang memiliki satu port. Titik akhir pencerminan database dapat menggunakan port apa pun yang tersedia di sistem lokal saat titik akhir dibuat. Semua sesi pencerminan database pada instans server mendengarkan port tersebut, dan semua koneksi masuk untuk pencerminan database menggunakan port tersebut.

Penting

Jika titik akhir pencerminan database ada dan sudah digunakan, kami sarankan Anda menggunakan titik akhir tersebut. Menghapus endpoint yang sedang digunakan akan mengganggu sesi yang sedang berlangsung.

Keamanan

Metode autentikasi dan enkripsi instans server dibuat oleh administrator sistem.

Peringatan

Algoritma RC4 tidak digunakan lagi. Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Kami menyarankan agar Anda menggunakan AES.

Izin

Memerlukan izin CREATE ENDPOINT, atau keanggotaan dalam peran server tetap sysadmin. Untuk informasi selengkapnya, lihat GRANT Izin Titik Akhir (Transact-SQL).

Menggunakan T-SQL

Untuk Membuat Titik Akhir Pencerminan Database yang Menggunakan Autentikasi Windows

  1. Sambungkan ke instans SQL Server yang ingin Anda gunakan untuk membuat endpoint pencerminan database.

  2. Dari bilah Standar, klik Kueri Baru.

  3. Tentukan apakah titik akhir pencerminan database sudah ada dengan menggunakan pernyataan berikut:

    SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;   
    

    Penting

    Jika titik akhir pencerminan database sudah ada untuk instans server, gunakan titik akhir tersebut untuk sesi lain yang Anda buat pada instans server.

  4. Untuk menggunakan Transact-SQL untuk membuat titik akhir yang akan digunakan dengan Autentikasi Windows, gunakan CREATE ENDPOINT pernyataan. Pernyataan ini mengambil bentuk umum berikut:

    CREATE ENDPOINT *\<endpointName>*  
    
    STATE=STARTED  
    
    AS TCP ( LISTENER_PORT = *\<listenerPortList>* )  
    
    FOR DATABASE_MIRRORING  
    
    (  
    
    [ AUTHENTICATION = **WINDOWS** [ *\<authorizationMethod>* ]  
    
    ]  
    
    [ [**,**] ENCRYPTION = **REQUIRED**  
    
    [ ALGORITHM { *\<algorithm>* } ]  
    
    ]  
    
    [**,**] ROLE = *\<role>*  
    
    )  
    

    Di mana:

    • <endpointName> adalah nama unik untuk titik akhir pencerminan database instans server.

    • STARTED menetapkan bahwa endpoint akan dijalankan dan mulai mendengarkan koneksi yang masuk. Titik akhir pencerminan basis data biasanya dibuat dengan status STARTED. Atau, Anda dapat memulai sesi dalam status STOP (default) atau status DISABLED.

    • <listenerPortList> adalah nomor port tunggal (nnnn) yang digunakan server untuk mendengarkan pesan pencerminan database. Hanya TCP yang diizinkan; menentukan protokol lain menyebabkan kesalahan.

      Nomor port hanya dapat digunakan sekali per sistem komputer. Titik akhir pencerminan database dapat menggunakan port apa pun yang tersedia di sistem lokal saat titik akhir dibuat. Untuk mengidentifikasi port yang saat ini digunakan oleh titik akhir TCP pada sistem, gunakan pernyataan Transact-SQL berikut:

      SELECT name, port FROM sys.tcp_endpoints;  
      

      Penting

      Setiap instans server memerlukan satu dan hanya satu port pendengar unik.

    • Untuk Autentikasi Windows, opsi AUTENTIKASI bersifat opsional, kecuali Anda ingin titik akhir hanya menggunakan NTLM atau Kerberos untuk mengautentikasi koneksi. <authorizationMethod> menentukan metode yang digunakan untuk mengautentikasi koneksi sebagai salah satu hal berikut: NTLM, KERBEROS, atau NEGOSIASI. Nilai default, NEGOTIATE, membuat endpoint menggunakan protokol negosiasi Windows untuk memilih NTLM atau Kerberos. Negosiasi memungkinkan koneksi dengan atau tanpa autentikasi, tergantung pada tingkat autentikasi titik akhir yang berlawanan.

      Catatan

      Untuk menggunakan autentikasi Kerberos untuk komunikasi antara titik akhir grup ketersediaan (AG), daftarkan Nama Perwakilan Layanan untuk Koneksi Kerberos untuk titik akhir pencerminan database yang digunakan oleh AG.

    • ENKRIPSI diatur ke DIPERLUKAN secara default. Ini berarti bahwa semua koneksi ke titik akhir ini harus menggunakan enkripsi. Namun, Anda dapat menonaktifkan enkripsi atau membuatnya opsional pada titik akhir. Alternatifnya adalah sebagai berikut:

      Nilai Definisi
      NONAKTIF Menentukan bahwa data yang dikirim melalui koneksi tidak dienkripsi.
      DIDUKUNG Menetapkan bahwa data dienkripsi hanya jika endpoint lainnya menetapkan SUPPORTED atau REQUIRED.
      WAJIB DIISI Menentukan bahwa data yang dikirim melalui koneksi harus dienkripsi.

      Jika titik akhir memerlukan enkripsi, titik akhir lainnya harus memiliki ENKRIPSI yang diatur ke DIDUKUNG atau DIPERLUKAN.

    • <algoritma> menyediakan opsi untuk menentukan standar enkripsi untuk titik akhir. Nilai <algoritma> dapat berupa satu algoritma atau kombinasi algoritma berikut: RC4, AES, AES RC4, atau RC4 AES.

      Algoritma AES untuk titik akhir pencerminan database menggunakan panjang kunci 128 bit.

      AES RC4 menentukan bahwa titik akhir ini akan bernegosiasi untuk algoritma enkripsi, memberikan preferensi pada algoritma AES. RC4 AES menentukan bahwa titik akhir ini akan bernegosiasi untuk algoritma enkripsi, memberikan preferensi pada algoritma RC4. Jika kedua titik akhir menentukan kedua algoritma tetapi dalam urutan yang berbeda, titik akhir yang menerima koneksi akan menang. Berikan algoritma yang sama secara eksplisit untuk menghindari kesalahan koneksi antara server yang berbeda.

      Peringatan

      Algoritma RC4 tidak digunakan lagi. Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Kami menyarankan agar Anda menggunakan AES.

    • <peran> menentukan peran atau peran yang dapat dilakukan server. Menentukan ROLE wajib. Namun, peran titik akhir hanya relevan untuk pencerminan database. Untuk grup ketersediaan AlwaysOn, peran titik akhir diabaikan.

      Untuk memungkinkan instans server berfungsi sebagai satu peran untuk satu sesi pencerminan database dan peran yang berbeda untuk sesi lain, tentukan ROLE=ALL. Untuk membatasi instans server menjadi mitra atau saksi, tentukan ROLE = PARTNER atau ROLE = WITNESS, masing-masing.

      Catatan

      Untuk daftar fitur yang didukung oleh edisi di SQL Server, lihat Edisi dan fitur yang didukung dari SQL Server 2016.

    Untuk deskripsi CREATE ENDPOINT lengkap sintaks, lihat CREATE ENDPOINT (Transact-SQL).

    Catatan

    Untuk mengubah titik akhir yang ada, gunakan ALTER ENDPOINT (Transact-SQL).

Contoh: Membuat Endpoint untuk Mendukung Pencerminan Database (Transact-SQL)

Contoh berikut membuat endpoint pencerminan database untuk instans server bawaan pada tiga sistem komputer yang terpisah:

Peran instans server Nama komputer host
Mitra (awalnya dalam peran utama) SQLHOST01\.
Mitra (awalnya dalam peran cermin) SQLHOST02\.
saksi SQLHOST03\.

Dalam contoh ini, ketiga endpoint menggunakan nomor port 7022, meskipun nomor port apa pun yang tersedia dapat digunakan. Opsi AUTENTIKASI tidak perlu, karena titik akhir menggunakan jenis default, Autentikasi Windows. Opsi ENCRYPTION juga tidak diperlukan, karena semua titik akhir dirancang untuk menegosiasikan metode autentikasi bagi koneksi, yang merupakan perilaku bawaan Autentikasi Windows. Selain itu, semua titik akhir memerlukan enkripsi, yang merupakan perilaku default.

Setiap instans server terbatas untuk berfungsi sebagai mitra atau saksi, dan titik akhir setiap server secara tegas menentukan peran mana (ROLE=MITRA atau ROLE=WITNESS).

Penting

Setiap instans server hanya dapat memiliki satu titik akhir. Oleh karena itu, jika Anda ingin instans server menjadi mitra dalam beberapa sesi dan saksi di sesi lain, tentukan ROLE=ALL.

--Endpoint for initial principal server instance, which  
--is the only server instance running on SQLHOST01.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for initial mirror server instance, which  
--is the only server instance running on SQLHOST02.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=PARTNER);  
GO  
--Endpoint for witness server instance, which  
--is the only server instance running on SQLHOST03.  
CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (ROLE=WITNESS);  
GO  

Tugas Terkait

Untuk Mengonfigurasi Titik Akhir Pencerminan Database

Untuk Menampilkan Informasi Tentang Titik Akhir Pencerminan Database