CREATE ENDPOINT (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Uç noktaları oluşturur ve istemci uygulamaları için kullanılabilen yöntemler de dahil olmak üzere özelliklerini tanımlar. İlgili izin bilgileri için bkz. GRANT Endpoint Permissions.

için CREATE ENDPOINT söz dizimi mantıksal olarak iki bölüme ayrılabilir:

  • İlk bölüm AS ile başlar ve yan tümceden FOR önce biter.

    Bu bölümde, aktarım protokolüne (TCP) özgü bilgiler sağlar ve uç nokta için bir dinleme bağlantı noktası numarası, uç nokta kimlik doğrulaması yöntemi ve/veya uç noktaya erişmesini kısıtlamak istediğiniz IP adreslerinin (varsa) bir listesini ayarlarsınız.

  • İkinci bölüm yan tümcesiyle FOR başlar.

    Bu bölümde uç noktada desteklenen yükü tanımlarsınız. Yük desteklenen çeşitli türlerden biri olabilir: Transact-SQL, hizmet aracısı, veritabanı yansıtma. Bu bölümde dile özgü bilgiler de dahil olacaksınız.

Transact-SQL söz dizimi kuralları

Sözdizimi

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 | ( four_part_ipv4_address ) | ( 'ip_address_v6' ) ]
)

<FOR TSQL_language_specific_arguments> ::=
FOR TSQL (
    [ ENCRYPTION = { NEGOTIATED | STRICT } ]
)

<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 }
)

Arguments

endPointName

Oluşturduğunuz uç nokta için atanan ad. Uç noktayı güncelleştirirken veya silerken kullanın.

YETKILENDIRME oturum açma

Yeni oluşturulan uç nokta nesnesinin sahipliğini atanmış geçerli bir SQL Server veya Windows oturum açma bilgilerini belirtir. YETKILENDIRME belirtilmezse, çağıran varsayılan olarak yeni oluşturulan nesnenin sahibi olur.

YETKILENDIRME belirterek sahiplik atamak için, çağıranın belirtilen oturum açmada KIMLIĞE BÜRÜNme izni olmalıdır.

seçeneği AUTHORIZATION içinde ALTER ENDPOINTkullanılamaz. Sahiplik yalnızca uç nokta oluşturulduğunda atanabilir.

Sahipliği yeniden atamak için DROP ENDPOINT konusuna bakın ve uç noktayı yeniden oluşturmak için bu makaleye dönün.

STATE = { STARTED | DURDURULDU | DISABLED }

Uç nokta oluşturulduğundaki durumu. Uç nokta oluşturulduğunda durum belirtilmezse varsayılan STOPPED değerdir.

BAŞLADI

Uç nokta başlatılır ve bağlantıları etkin bir şekilde dinler.

SAKAT

Uç nokta devre dışı bırakıldı. Bu durumda, sunucu bağlantı noktası isteklerini dinler ancak istemcilere hatalar döndürür.

DURDU

Uç nokta durduruldu. Bu durumda, sunucu uç nokta bağlantı noktasını dinlemez veya uç noktayı kullanmaya yönelik girişim isteklerine yanıt vermez.

Durumu değiştirmek için ALTER ENDPOINT kullanın.

AS { TCP }

Kullanılacak aktarım protokollerini belirtir.

FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }

Yük türünü belirtir.

Şu anda, parametresini geçirmek <language_specific_arguments> için dile özgü Transact-SQL bağımsız değişken yoktur.

TCP protokolü seçeneği

Aşağıdaki bağımsız değişkenler yalnızca TCP protokolü seçeneği için geçerlidir.

LISTENER_PORT = listenerPort

Hizmet aracısı TCP/IP protokolü tarafından bağlantılar için dinlenen bağlantı noktası numarasını belirtir. Kural gereği 5022 kullanılır, ancak 1024 ile 32767 arasındaki herhangi bir sayı geçerlidir.

LISTENER_IP = TÜMÜ | (four_part_ipv4_address) | ( 'ip_address_v6' )

Uç noktanın dinleyeceği IP adresini belirtir. Varsayılan değer TÜMÜ'dür. Bu, dinleyicinin geçerli herhangi bir IP adresinde bir bağlantı kabul edeceği anlamına gelir.

Veritabanı yansıtmayı tam etki alanı adı (ALTER DATABASE SET PARTNER = partner_IP_address veya ALTER DATABASE SET WITNESS = witness_IP_address) yerine bir IP adresiyle yapılandırıyorsanız, yansıtma uç noktalarını oluşturmak yerine LISTENER_IP =IP_address belirtmeniz LISTENER_IP=ALL gerekir.

T-SQL seçenekleri

ŞIFRELEME = { ANLAŞMALı | STRICT }

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve üzeri

İşlemde şifrelemenin nasıl kullanıldığını belirtir. Uyumluluk nedenleriyle varsayılan olarak NEGOTIATED değeridir.

MÜZAKERE

Bağlantının şifrelenme yöntemi, sunucu ve istemci arasında anlaşılır. Kurulan gerçek bağlantı şu şifreyi şifreleyebilir:

  • Yalnızca LOGIN7 iletisi.
  • PRELOGIN dışındaki tüm iletiler.
  • Tüm iletiler.

SIKI

Bu uç noktaya gönderilen tüm iletilerin şifrelenmesinin gerektiğini ve geri dönüş sertifikasının uç nokta tarafından sunulmayacağını belirtir. TLS üst bilgisi ilk ileti değilse, sunucu bağlantıyı keser.

SERVICE_BROKER ve DATABASE_MIRRORING seçenekleri

Ve seçeneklerinde aşağıdaki AUTHENTICATION ve bağımsız değişkenleri ortaktır SERVICE_BROKERDATABASE_MIRRORING.ENCRYPTION

Uyarı

öğesine özgü seçenekler için SERVICE_BROKERbu bölümün devamında yer alan SERVICE_BROKER seçeneklere bakın. öğesine özgü seçenekler için DATABASE_MIRRORINGbu bölümün devamında yer alan DATABASE_MIRRORING seçeneklere bakın.

AUTHENTICATION = <authentication_options>

Bu uç nokta için bağlantılar için TCP/IP kimlik doğrulaması gereksinimlerini belirtir. Varsayılan değer şudur: WINDOWS.

Desteklenen kimlik doğrulama yöntemleri NTLM ve/veya Kerberos'tır.

Önemli

Sunucu örneğindeki tüm yansıtma bağlantıları tek bir veritabanı yansıtma uç noktası kullanır. Ek veritabanı yansıtma uç noktası oluşturma girişimleri başarısız olur.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]

Uç noktanın, uç noktaların kimliğini doğrulamak için Windows Kimlik Doğrulama protokolü kullanılarak bağlanıldığını belirtir. Bu varsayılan seçenektir.

Bir yetkilendirme yöntemi (NTLM veya KERBEROS) belirtirseniz, bu yöntem her zaman kimlik doğrulama protokolü olarak kullanılır. varsayılan değeri, NEGOTIATEuç noktanın NTLM veya Kerberos'u seçmek için Windows anlaşma protokolunu kullanmasına neden olur.

SERTIFIKA certificate_name

Uç noktanın, kimlik doğrulaması için kimlik oluşturmak üzere certificate_name tarafından belirtilen sertifikayı kullanarak bağlantının kimliğini doğrulamak olduğunu belirtir. Uzak uç nokta, belirtilen sertifikanın özel anahtarıyla eşleşen ortak anahtara sahip bir sertifikaya sahip olmalıdır.

WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] SERTIFIKA certificate_name

Uç noktanın Windows Kimlik Doğrulaması'nı kullanarak bağlanmayı deneyip bu deneme başarısız olursa belirtilen sertifikayı kullanmayı denemek olduğunu belirtir.

SERTIFIKA certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]

Uç noktanın belirtilen sertifikayı kullanarak bağlanmayı deneyip bu deneme başarısız olursa Windows Kimlik Doğrulaması'nı kullanmayı denemek olduğunu belirtir.

ŞIFRELEME = { DEVRE DıŞı | DESTEKLİ | REQUIRED } [ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ]

İşlemde şifreleme kullanılıp kullanılmayacağını belirtir. Varsayılan değer: REQUIRED.

SAKAT

Bağlantı üzerinden gönderilen verilerin şifrelenmediğini belirtir.

DESTEKLİ

Verilerin yalnızca karşı uç nokta veya REQUIREDbelirtirse şifrelendiğini belirtirSUPPORTED.

GEREKLİ

Bu uç noktaya bağlantıların şifreleme kullanması gerektiğini belirtir. Bu nedenle, bu uç noktaya bağlanmak için başka bir uç nokta veya REQUIREDolarak SUPPORTED ayarlanmış olmalıdırENCRYPTION.

İsteğe bağlı olarak, uç nokta tarafından kullanılan şifreleme biçimini belirtmek için bağımsız değişkenini aşağıdaki gibi kullanabilirsiniz ALGORITHM :

AES

Uç noktanın AES algoritmasını kullanması gerektiğini belirtir. Bu, SQL Server 2016 (13.x) ve sonraki sürümlerde varsayılandır.

RC4

Uç noktanın RC4 algoritmasını kullanması gerektiğini belirtir. Bu, SQL Server 2014 (12.x) üzerinden varsayılan değerdir.

Uyarı

RC4 algoritması yalnızca geriye dönük uyumluluk için desteklenir. Yeni malzemeler yalnızca veritabanı uyumluluk düzeyi 90 veya 100 olduğunda RC4 veya RC4_128 kullanılarak şifrelenebilir. (Önerilmez.) Bunun yerine AES algoritmalarından biri gibi daha yeni bir algoritma kullanın. SQL Server 2012 (11.x) ve sonraki sürümlerinde RC4 veya RC4_128 kullanılarak şifrelenen malzemenin şifresi herhangi bir uyumluluk düzeyinde çözülebilir.

AES RC4

İki uç noktanın, AES algoritmasını tercih eden bu uç noktayla bir şifreleme algoritması için anlaşma yapacağı belirtir.

RC4 AES

İki uç noktanın, RC4 algoritmasını tercih eden bu uç noktayla bir şifreleme algoritması için anlaşmaya varacağını belirtir.

Uyarı

RC4 algoritması kullanım dışıdır. Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. AES kullanmanızı öneririz.

Her iki uç nokta da her iki algoritmayı da farklı sıralarda belirtirse, bağlantıyı kabul eden uç nokta kazanır.

SERVICE_BROKER seçenekleri

Aşağıdaki bağımsız değişkenler seçeneğe SERVICE_BROKER özeldir.

MESSAGE_FORWARDING = { ENABLED | DISABLED }

Bu uç nokta tarafından başka bir yerde bulunan hizmetler için alınan iletilerin iletilip iletilmeyeceğini belirler.

ETKİN

bir iletme adresi varsa iletileri iletin.

SAKAT

Başka bir yerde bulunan hizmetler için iletileri atar. Bu varsayılan seçenektir.

MESSAGE_FORWARD_SIZE = forward_size

İletilecek iletileri depolarken uç nokta için ayrılacak en yüksek depolama miktarını megabayt cinsinden belirtir.

DATABASE_MIRRORING seçenekleri

Aşağıdaki bağımsız değişken DATABASE_MIRRORING seçeneğine özgüdür.

ROLE = { WITNESS | İŞ ORTAĞı | ALL }

Uç noktanın desteklediği veritabanı yansıtma rolünü veya rollerini belirtir.

TANIK

Uç noktanın yansıtma işleminde bir tanık rolünde performans göstermesini sağlar.

Uyarı

SQL Server 2005 Express sürümü için WITNESS kullanılabilen tek seçenektir.

ORTAK

Yansıtma işleminde uç noktanın iş ortağı rolünde performans göstermesini sağlar.

HEPSİ

Uç noktanın yansıtma işleminde hem tanık hem de iş ortağı rolünde performans göstermesini sağlar.

Bu roller hakkında daha fazla bilgi için bkz. Veritabanı Yansıtma (SQL Server).

Uyarı

DATABASE_MIRRORING için varsayılan bağlantı noktası yoktur.

Açıklamalar

ENDPOINT DDL deyimleri bir kullanıcı işlemi içinde yürütülemez. ENDPOINT DDL deyimleri, etkin bir anlık görüntü yalıtım düzeyi işlemi değiştirilen uç noktayı kullanıyor olsa bile başarısız olmaz.

İstekler aşağıdakiler tarafından bir'e ENDPOINT karşı yürütülebilir:

  • Sysadmin sabit sunucu rolünün üyeleri

  • Uç noktanın sahibi

  • Uç nokta üzerinde izin verilen CONNECT kullanıcılar veya gruplar

Permissions

CREATE ENDPOINT sysadmin sabit sunucu rolünde izin veya üyelik gerektirir. Daha fazla bilgi için bkz. GRANT Endpoint Permissions.

Examples

Veritabanı yansıtma uç noktası oluşturma

Aşağıdaki örnek bir veritabanı yansıtma uç noktası oluşturur. Uç nokta bağlantı noktası numarasını 7022kullanır, ancak kullanılabilir herhangi bir bağlantı noktası numarası işe yarayabilecek. Uç nokta, yalnızca Kerberos kullanılarak Windows Kimlik Doğrulaması kullanacak şekilde yapılandırılır. seçeneği ENCRYPTION , şifrelenmiş veya şifrelenmemiş verileri desteklemek için 'in SUPPORTED varsayılan olmayan değerine yapılandırılır. Uç nokta hem iş ortağı hem de tanık rollerini destekleyecek şekilde yapılandırılıyor.

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

Belirli bir IPv4 adresine ve bağlantı noktasına işaret eden yeni bir uç nokta oluşturma

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

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

GRANT CONNECT ON ENDPOINT::ipv4_endpoint_special TO login_name;

Belirli bir IPv6 adresine ve bağlantı noktasına işaret eden yeni bir uç nokta oluşturma

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

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

GRANT CONNECT ON ENDPOINT::ipv6_endpoint_special TO PUBLIC;

Katı şifreleme ile yeni bir uç nokta oluşturma

CREATE ENDPOINT [TDSSConnection]
STATE = STARTED
AS TCP (
    LISTENER_PORT = 1433,
    LISTENER_IP = ALL
)
FOR TSQL (
    ENCRYPTION = STRICT
);
GO