CREATE ENDPOINT (Transact-SQL)

Berlaku untuk:SQL Server

Membuat titik akhir dan menentukan propertinya, termasuk metode yang tersedia untuk aplikasi klien. Untuk informasi izin terkait, lihat IZIN GRANT Endpoint (Transact-SQL).

Sintaksis untuk CREATE ENDPOINT dapat secara logis dipecah menjadi dua bagian:

  • Bagian pertama dimulai dengan AS dan berakhir sebelum klausul FOR.

    Di bagian ini, Anda memberikan informasi khusus untuk protokol transportasi (TCP) dan mengatur nomor port mendengarkan untuk titik akhir, serta metode autentikasi titik akhir dan/atau daftar alamat IP (jika ada) yang ingin Anda batasi untuk mengakses titik akhir.

  • Bagian kedua dimulai dengan klausa FOR.

    Di bagian ini, Anda menentukan payload yang didukung pada titik akhir. Payload dapat menjadi salah satu dari beberapa jenis yang didukung: Transact-SQL, broker layanan, pencerminan database. Di bagian ini, Anda juga menyertakan informasi khusus bahasa.

Catatan

Native XML Web Services (titik akhir SOAP/HTTP) dihapus di SQL Server 2012 (11.x).

Konvensi sintaks transact-SQL

Sintaksis

CREATE ENDPOINT endPointName [ AUTHORIZATION login ]  
[ STATE = { STARTED | STOPPED | DISABLED } ]  
AS { TCP } (  
   <protocol_specific_arguments>  
        )  
FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (  
   <language_specific_arguments>  
        )  
  
<AS TCP_protocol_specific_arguments> ::=  
AS TCP (  
  LISTENER_PORT = listenerPort  
  [ [ , ] LISTENER_IP = ALL | ( xx.xx.xx.xx IPv4 address ) | ( '__:__1' IPv6 address ) ]  
  
)  
  
<FOR SERVICE_BROKER_language_specific_arguments> ::=  
FOR SERVICE_BROKER (  
   [ AUTHENTICATION = {   
            WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]   
      | CERTIFICATE certificate_name   
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name   
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]   
    } ]  
   [ [ , ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }   
       [ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ] }   
   ]  
   [ [ , ] MESSAGE_FORWARDING = { ENABLED | DISABLED } ]  
   [ [ , ] MESSAGE_FORWARD_SIZE = forward_size ]  
)  
  

<FOR DATABASE_MIRRORING_language_specific_arguments> ::=  
FOR DATABASE_MIRRORING (  
   [ AUTHENTICATION = {   
            WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]   
      | CERTIFICATE certificate_name   
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name   
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]   
   [ [ [ , ] ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }   
       [ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ] }   
  
    ]   
   [ , ] ROLE = { WITNESS | PARTNER | ALL }  
)  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

endPointName
Adalah nama yang ditetapkan untuk titik akhir yang Anda buat. Gunakan saat memperbarui atau menghapus titik akhir.

Login OTORISASI
Menentukan login SQL Server atau Windows yang valid yang diberi kepemilikan dari objek titik akhir yang baru dibuat. Jika OTORISASI tidak ditentukan, secara default, pemanggil menjadi pemilik objek yang baru dibuat.

Untuk menetapkan kepemilikan dengan menentukan OTORISASI, pemanggil harus memiliki izin IMPERSONATE pada login yang ditentukan.

Opsi OTORISASI tidak tersedia di ALTER ENDPOINT. Kepemilikan hanya dapat ditetapkan saat titik akhir dibuat. Untuk menetapkan ulang kepemilikan, lihat DROP ENDPOINT (Transact-SQL) lalu kembali ke artikel ini untuk membuat ulang titik akhir.

STATUS = { DIMULAI | BERHENTI | DINONAKTIFKAN }
Adalah status titik akhir saat dibuat. Jika status tidak ditentukan saat titik akhir dibuat, STOP adalah default.

MULAI
Titik akhir dimulai dan secara aktif mendengarkan koneksi.

DINONAKTIFKAN
Titik akhir dinonaktifkan. Dalam status ini, server mendengarkan permintaan port tetapi mengembalikan kesalahan kepada klien.

BERHENTI
Titik akhir dihentikan. Dalam status ini, server tidak mendengarkan port titik akhir atau menanggapi permintaan yang dicoba untuk menggunakan titik akhir.

Untuk mengubah status, gunakan ALTER ENDPOINT (Transact-SQL).

AS { TCP }
Menentukan protokol transportasi yang akan digunakan.

UNTUK { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
Menentukan jenis payload.

Saat ini, tidak ada argumen khusus bahasa Transact-SQL untuk meneruskan <language_specific_arguments> parameter.

Opsi Protokol TCP

Argumen berikut hanya berlaku untuk opsi protokol TCP.

=LISTENER_PORT listenerPort
Menentukan nomor port yang didengarkan untuk koneksi oleh broker layanan protokol TCP/IP. Menurut konvensi, 5022 digunakan tetapi angka apa pun antara 1024 dan 32767 valid.

= LISTENER_IP SEMUA | (4-part-ip) | ( "ip_address_v6" )
Menentukan alamat IP yang akan didengarkan titik akhir. Defaultnya adalah ALL. Ini berarti bahwa pendengar akan menerima koneksi pada alamat IP yang valid.

Jika Anda mengonfigurasi pencerminan database dengan alamat IP alih-alih nama domain yang sepenuhnya memenuhi syarat (ALTER DATABASE SET PARTNER = partner_IP_address atau ALTER DATABASE SET WITNESS = witness_IP_address), Anda harus menentukan LISTENER_IP =IP_address alih-alih LISTENER_IP=ALL saat Membuat titik akhir pencerminan.

Opsi SERVICE_BROKER dan DATABASE_MIRRORING

Argumen AUTENTIKASI dan ENKRIPSI berikut umum untuk opsi SERVICE_BROKER dan DATABASE_MIRRORING.

Catatan

Untuk opsi yang khusus untuk SERVICE_BROKER, lihat "Opsi SERVICE_BROKER", nanti di bagian ini. Untuk opsi yang khusus untuk DATABASE_MIRRORING, lihat "Opsi DATABASE_MIRRORING", nanti di bagian ini.

authentication_options AUTENTIKASI =<>
Menentukan persyaratan autentikasi TCP/IP untuk koneksi untuk titik akhir ini. Nilai defaultnya adalah WINDOWS.

Metode autentikasi yang didukung termasuk NTLM dan atau Kerberos atau keduanya.

Penting

Semua koneksi pencerminan pada instans server menggunakan satu titik akhir pencerminan database. Setiap upaya untuk membuat titik akhir pencerminan database tambahan akan gagal.

<> authentication_options ::=

WINDOWS [ { NTLM | KERBEROS | NEGOSIASI } ]
Menentukan bahwa titik akhir akan tersambung menggunakan protokol Autentikasi Windows untuk mengautentikasi titik akhir. Ini adalah default.

Jika Anda menentukan metode otorisasi (NTLM atau KERBEROS), metode tersebut selalu digunakan sebagai protokol autentikasi. Nilai default, NEGOTIATE, menyebabkan titik akhir menggunakan protokol negosiasi Windows untuk memilih NTLM atau Kerberos.

certificate_name SERTIFIKAT
Menentukan bahwa titik akhir adalah untuk mengautentikasi koneksi menggunakan sertifikat yang ditentukan oleh certificate_name untuk membuat identitas untuk otorisasi. Titik akhir jauh harus memiliki sertifikat dengan kunci publik yang cocok dengan kunci privat sertifikat yang ditentukan.

WINDOWS [ { NTLM | KERBEROS | NEGOSIASI } ] CERTIFICATE_NAME SERTIFIKAT
Menentukan bahwa titik akhir adalah mencoba menyambungkan dengan menggunakan Autentikasi Windows dan, jika upaya tersebut gagal, untuk kemudian mencoba menggunakan sertifikat yang ditentukan.

SERTIFIKAT certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOSIASI } ]
Menentukan bahwa titik akhir adalah mencoba menyambungkan dengan menggunakan sertifikat yang ditentukan dan, jika upaya tersebut gagal, untuk kemudian mencoba menggunakan Autentikasi Windows.

ENKRIPSI = { DINONAKTIFKAN | DIDUKUNG | DIPERLUKAN } [ALGORITMA { AES | RC4 | AES RC4 | RC4 AES } ]
Menentukan apakah enkripsi digunakan dalam proses. Defaultnya adalah REQUIRED.

DINONAKTIFKAN
Menentukan bahwa data yang dikirim melalui koneksi tidak dienkripsi.

DIDUKUNG
Menentukan bahwa data dienkripsi hanya jika titik akhir yang berlawanan menentukan DIDUKUNG atau DIPERLUKAN.

WAJIB DIISI
Menentukan bahwa koneksi ke titik akhir ini harus menggunakan enkripsi. Oleh karena itu, untuk menyambungkan ke titik akhir ini, titik akhir lain harus memiliki ENKRIPSI yang diatur ke DIDUKUNG atau DIPERLUKAN.

Secara opsional, Anda dapat menggunakan argumen ALGORITHM untuk menentukan bentuk enkripsi yang digunakan oleh titik akhir, sebagai berikut:

AES
Menentukan bahwa titik akhir harus menggunakan algoritma AES. Ini adalah default di SQL Server 2016 (13.x) dan yang lebih baru.

RC4
Menentukan bahwa titik akhir harus menggunakan algoritma RC4. Ini adalah default melalui SQL Server 2014 (12.x).

Catatan

Algoritma RC4 hanya didukung untuk kompatibilitas mundur. Materi baru hanya dapat dienkripsi menggunakan RC4 atau RC4_128 saat database berada dalam tingkat kompatibilitas 90 atau 100. (Tidak disarankan.) Gunakan algoritma yang lebih baru seperti salah satu algoritma AES sebagai gantinya. Di SQL Server 2012 (11.x) dan versi yang lebih baru, materi yang dienkripsi menggunakan RC4 atau RC4_128 dapat didekripsi dalam tingkat kompatibilitas apa pun.

AES RC4
Menentukan bahwa kedua titik akhir akan bernegosiasi untuk algoritma enkripsi dengan titik akhir ini memberikan preferensi pada algoritma AES.

RC4 AES
Menentukan bahwa kedua titik akhir akan bernegosiasi untuk algoritma enkripsi dengan titik akhir ini memberikan preferensi pada algoritma RC4.

Catatan

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.

Jika kedua titik akhir menentukan kedua algoritma tetapi dalam urutan yang berbeda, titik akhir yang menerima koneksi akan menang.

Opsi SERVICE_BROKER

Argumen berikut khusus untuk opsi SERVICE_BROKER.

= MESSAGE_FORWARDING { ENABLED | DINONAKTIFKAN }
Menentukan apakah pesan yang diterima oleh titik akhir ini untuk layanan yang terletak di tempat lain akan diteruskan.

DIAKTIFKAN
Meneruskan pesan jika alamat penerusan tersedia.

DINONAKTIFKAN
Membuang pesan untuk layanan yang terletak di tempat lain. Ini adalah default.

=forward_size MESSAGE_FORWARD_SIZE
Menentukan jumlah maksimum penyimpanan dalam megabyte untuk dialokasikan agar titik akhir digunakan saat menyimpan pesan yang akan diteruskan.

Opsi DATABASE_MIRRORING

Argumen berikut khusus untuk opsi DATABASE_MIRRORING.

PERAN = { SAKSI | MITRA | SEMUA }
Menentukan peran atau peran pencerminan database yang didukung titik akhir.

SAKSI
Memungkinkan titik akhir untuk melakukan dalam peran saksi dalam proses pencerminan.

Catatan

Untuk edisi SQL Server 2005 Express, WITNESS adalah satu-satunya opsi yang tersedia.

MITRA
Memungkinkan titik akhir untuk melakukan peran mitra dalam proses pencerminan.

SEMUA
Memungkinkan titik akhir untuk melakukan dalam peran saksi dan mitra dalam proses pencerminan.

Untuk informasi selengkapnya tentang peran ini, lihat Pencerminan Database (SQL Server).

Catatan

Tidak ada port default untuk DATABASE_MIRRORING.

Keterangan

Pernyataan ENDPOINT DDL tidak dapat dijalankan di dalam transaksi pengguna. Pernyataan DDL ENDPOINT tidak gagal meskipun transaksi tingkat isolasi rekam jepret aktif menggunakan titik akhir yang diubah.

Permintaan dapat dijalankan terhadap TITIK AKHIR dengan cara berikut:

  • Anggota peran server tetap sysadmin

  • Pemilik titik akhir

  • Pengguna atau grup yang telah diberikan izin CONNECT pada titik akhir

Izin

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

Contoh

Membuat titik akhir pencerminan database

Contoh berikut membuat titik akhir pencerminan database. Titik akhir menggunakan nomor 7022port , meskipun nomor port yang tersedia akan berfungsi. Titik akhir dikonfigurasi untuk menggunakan Autentikasi Windows hanya menggunakan Kerberos. Opsi dikonfigurasi ENCRYPTION ke nilai SUPPORTED nondefault untuk mendukung data terenkripsi atau tidak terenkripsi. Titik akhir sedang dikonfigurasi untuk mendukung peran mitra dan saksi.

CREATE ENDPOINT endpoint_mirroring  
    STATE = STARTED  
    AS TCP ( LISTENER_PORT = 7022 )  
    FOR DATABASE_MIRRORING (  
       AUTHENTICATION = WINDOWS KERBEROS,  
       ENCRYPTION = SUPPORTED,  
       ROLE=ALL);  
GO  

Membuat titik akhir baru yang menunjuk ke alamat dan port IPv4 tertentu

CREATE ENDPOINT ipv4_endpoint_special
STATE = STARTED
AS TCP (
    LISTENER_PORT = 55555, LISTENER_IP = (10.0.75.1)
)
FOR TSQL ();

GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO public; -- Keep existing public permission on default endpoint for demo purpose
GRANT CONNECT ON ENDPOINT::ipv4_endpoint_special
TO login_name;

Membuat titik akhir baru yang menunjuk ke alamat dan port IPv6 tertentu

CREATE ENDPOINT ipv6_endpoint_special STATE = STARTED AS TCP (
    LISTENER_PORT = 55555,
    LISTENER_IP = ('::1')
)
FOR TSQL();

GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO PUBLIC;
GRANT CONNECT ON ENDPOINT::ipv6_endpoint_special TO PUBLIC;

Lihat juga

ALTER ENDPOINT (Transact-SQL)
Pilih Algoritma Enkripsi
DROP ENDPOINT (Transact-SQL)
EVENTDATA (Transact-SQL)