SQL Server EndPoint Kullanımı

by Emre ARITÜRK 28. Temmuz 2011 09:47
Merhaba Arkadaşlar,
Sizlere bu günkü yazımda SQL Server içerisinde EndPoint Kullanımını anlatmaya çalışacağım.
Önce dilerseniz EndPoint nedir biraz bakalım:
EndPoint ler sql server üzerinde WebServis tanımlamadır.Yazmış olduğunuz Procedure leri webservis çağırır gibi çağırabilir ve bunlarla işlemler yapabilirsiniz.
Bu sayade araya webservis yazmanıza gerek kalmaz ancak bu biraz tehlikeye açık ve riskli bir durumdur.
Ancak biz burada yine de bu konuya değineceğiz.
Öncelikle Aşağıdaki 2 tabloyu oluşturalim:

Tablo Adı : LOOKUP_TABLE


Tablo Adı : PRODUCTS

 

Şimdi lookup tablosuna aşağıdaki kayıtları girelim :




Product Tablosuna da aşağıdaki kayıtları girelim :





Şimdi sıra geldi T-SQL kodlarımızı yazmaya.

Öncelikle Lookup tablomuzdan istediğimiz kod ve değere ait verilerimizi getirecek olan SQL FUCNTION umuzu yazalım :



Ardından da bizim ürün kategori listemizi getirecek olan SQL Stored Procedure yazalım :



Ardında da bizim webmethod olarak kullanacağımız ve kategorilerimize göre ürün listemizi getirecek olan SQL Stored Procedure yazalım : 



Son olarak artık EndPoint imizi oluşturalım :





Dilerseniz şimdi EndPoint tanımlamada kullandığımız komutlara bir göz atalım:

STATE
: State alanının 3  değeri vardır. Eğer STOPPED olarak ayarlanır ise servis stop etmiş durumda olur ve client bir talepde bulunursa hata döner. DISABLED olarak ayarlanır ise, servis devre dışı bırakılmış olur ve gelen taleplere yanıt verilmez. STARTED ise ,servis aktif demektir ve gelen taleplere yanıt döner.
PATH: Başvuru yapan client in bu endpoint’e ulaşması için gerekli URL bilgisini tanımlar.Bizim örneğimizde servis adresi http://localhost/ECommerce/ProductsTransactions olacaktır.

AUTHENTICATION
:Endpoint in güvenlik mekanizmasını belirler. Endpointe erişimi kontrol etmek için AUTHENTICATION özelliği BASIC, DIGEST, INTEGRATED, NTLM veya KERBEROS değerlerini alabilir. 

BASIC authentication modu SSL gerektirmektedir ve Base64 ile encode edilmiş virgül ile ayrılmış kullanıcı adı ve parola bilgilerini kapsayan bir authentication header içermektedir. 

DIGEST authentication modunda talep sunucuya gönderilmeden önce kullanıcı adı ve parola MD5 ile şifrelenir. Sunucunun hem parolaya hem de MD5 hashine erişimi olduğu için doğrulama yapmak amacıyla istemci tarafından sağlanan verileri karşılaştırma imkanı vardır. Bu sayede istemci sunucuya, gerçek parolayı vermeden, gerçek parolayı bildiğini ispat edebilmektedir. 

INTEGRATED authentication modunda sunucu önce Kerberos ile kimlik doğrulama yapmaya çalışır. İstemcinin Kerberos'u desteklemiyor olması veya negotiation'ın mümkün olmaması durumunda authentication NTLM'e döner. NTLM, Windows 95, Windows 98 ve Windows NT 4.0 tarafından desteklenen bir authentication metodudur. Bu authentication mekanizmasında basic ve digest'e göre daha güvenli ve aşılması zor bir yapıya sahiptir. NTLM Windows 2000 ve sonraki sürümlerde bir Security Support Provider Interface (SSPI) ile sunulmaktadır. Kerberos authentication mekanizması Internet için standart bir mekanizmadır. Kerberos authentication mekanizması Windows 2000 ve sonraki sürümlerde bir SSPI ile desteklenmektedir. Kullanıcının kimliği doğrulandıktan sonra kullanıcı
CREATE ENDPOINT ifadesinde yer alacak DATABASE özelliği ile spesifik bir veritabanına yönlendirilebilir. 


Endpointler sunucu seviyesinde güvenlik işlemlerine tabidir. Endpointin sysadmin rolündeki Owner ı, EXECUTE,ALTER,  CONNECT, TAKE OWNERSHIP ve VIEW DEFINITION endpoint yetkileri için GRANT, DENY veya REVOKE ifadelerini kullanarak işlem yapabilir.  
WEBMETHOD: Bu özellikle de endpoint ile dışarıya açtığımız servisin metod larını belirlemiş oluruz.
NAME: Bu webmethod’un çağırımında metodun çalıştıracağı stored procedure’ün adı beliritilir.
BATCHES: Başvuru yapan client ın server’da SQL komutları çalıştırmasına izin verilip verilmeme durumudur. Genelde kapalı tutulmalıdır ki, herhangi bir saldırıda güvenlik açığı oluşmasın.

SCHEMA
: Metod çağrılarından sonra SOAP yanıtlarında(request) XSD dökümanının SOAP paketiyle birlikte gönderilmesi veya gönderilmemesi durumunu ifade eder. STANDARD ise gönderilir, NONE ise gönderilmez.
WSDL: Endpoint’in sonuna ?WSDL yazarak,endpoint için tanımlanan WSDL dökümanı elde edilebilir. WSDL’in elde edilip edilememe durumu belirtilir.DEFAULT ise elde edilebilir demektir.
DATABASE:  EndPoint in çalıştıracağı Store Procedure’ün hangi db de olduğunu belirtir.

SCHEMA: Eğer sorgu sonucunda dönen değeri DataSet içinde elde etmek istiyor iseniz bu durumda DEFAULT olarak belirlemeniz gerekir.XSD’in gönderilip gönderilmeme durumunu belirtir.

Biraz uzun bir makale oldu ancak işinize yarayacaktır.

İlgili Script Dosyasına Buradan ulaşabilirsiniz

Tags: , ,

SQL Genel | T-SQL

Yorum ekle




  Country flag
biuquote
  • Yorum
  • Canlı önizleme
Loading


RecentPosts

Arşiv

Powered by BlogEngine.NET 2.0.0.36 - Eco Theme by n3o Web Designers