Linux üzerine SQL Server Kurulumu

Bu sene Microsoft Connect etkinliğinde bir çok yeni özellik paylaşıldı. Bunlardan bazıları aşağıdadır.

  • Visual Studio for Mac tanıtıldı.
  • Visual Studio 2017 RC oldu.
  • Visual Studio TFS 2017 RTM oldu.
  • Microsoft Linux Foundation Platinium üyesi oldu
  • Samsung ile beraber çalışılarak .NET Tizen’e taşınacak.
  • SQL server linuxa geldi.

Aslında bu yazımda da ben en son yazdığım maddeye değineceğim. SQL server linuxta kullanılmaya başlandı. Ben de bu yazımda azure üzerinde deploy ettiğim ubuntu 16.10 üzerine sql server kurulumu nasıl yapılır? nasıl db oluşturulur? sorgular nasıldır gibi konulara değineceğim

SQL Server kurulumu

Öncelikle ben putty kullanacağım buradan indirebilirsiniz.

Öncelikle repositoryimizi ekliyoruz.

2. adım olarak Microsoft SQL Server Ubuntu repositorysini etkinleştiriyoruz.

3. adımda SQL serverimizi yüklüyoruz.

4. adım

5. adımda sql serveri başlatıyoruz.

1

Bazı toolların yüklenmesi

  1. superuser olarak giriş yapıyoruz.
2.Microsoft Red Hat repositoryi indiriyoruz.
3.superuser dan çıkıyoruz.
4. mssql-tools yüklemesi
5.
6.
7.
 

SQL Server’a bağlanma

Eğer başka bir makineye bağlanacaksanız aşağıdaki gibidir
 

SQL Server on Linux üzerinde sorgu çalıştırmak

Tüm dbleri görüntülemek istersek aşağıdaki gibidir

2

Yeni db oluşturmak için ise

 

Tablo oluşurmak için

 

Yukarıda oluşturduğumuz tabloya data eklemek için

select komutu

3

 

db silme işlemi

 

RSA Şifreleme Algoritması

1970’li yıllara kadar kriptoloji simetrik anahtarlara dayalıydı. Yani şifre çözülürken de aynı anahtarın kullanılması gerekiyordu. Gönderici ve alıcı aynı ortamda bulunmadığı için aynı anahtarı üretmek imkânsızdı. Diffie-Hellman anahtar değişimi gibi yöntemler kullanılarak anahtarlar değiş tokuş edilebilse bile burada da başka sorunlar ortaya çıkıyordu. Örneğin; bir kişi mesajını binlerce kişiye göndermeye çalıştığında herkes ile anahtar paylaşımı yapması gerekiyordu. Peki bunun daha efektif bir yolu var mıdır?

 

Açık anahtarlı şifreleme

19090211

Aslında çok basit bir mantığa dayanmaktadır. Alice bir anahtar alır ve anahtarını saklar. Anahtarı açık bir şekilde Bob’a gönderir. Bob mesajını kilitler ve tekrar Alice’e gönderir. Alice sakladığı anahtar ile kilidi açar ve mesajı okur. Bunu renkler üzerinde daha basitleştirerek anlatan resmi inceleyebilirsiniz.

Diffie-Hellman_Key_Exchange.svg (1)

Yukarıda anlattığımız yöntemin matematiksel bir karşılığı olması gerekir. Bunu da 1973 yılında Clifford Cocks buldu. Cocks’un bulduğu bu fonksiyon ileri yönlü çok hızlı çalışmakta ama fonksiyonu geri çevirirken çok çok yavaş çalışmaktadır. Daha da somutlaştırmak gerekirse;

Alice’in göndereceği mesajı m sayısına çevirdik. Alice m sayısının e üssünü aldı ve mod N işlemi yaptı.

 

me  mod N=c    c sayısını bulmak çok kolaydır. Ama  ?e modN=c ? ulaşmak çok çok zordur.

 

me  mod N=c     bu bizim matematiksel kilidimiz. Şimdi de anahtarımız elde edelim;

c sayısının d üssünü alıyoruz.

cd mod N=m  yani; med mod N=m olur. Bu işlemimizde e şifreleyici d ise şifre çözücüdür. e ve d sayılarını oluşturmak için ise öklidden yararlanacağız. Öklid bir sayının bir tane asal çarpan kümesine sahip olacağını göstermiştir.

 

Yazdığımız bir program vasıtasıyla aşağıdaki işlemi kolayca yapabiliriz.

46465161*416161=?

46465161 sayısını asal çarpanlara ayırmak çok daha zordur. Yani yazdığımız programın zaman karmaşıklığı exponansiyel olarak artar. Burada dikkatiniz çekmem gereken konu bu algoritmanın kırılması imkansız değildir ama time complexity(alan karmaşıklığı) çok çok fazladır. 100 basamaklı iki tane asal sayı seçelim. Bu iki sayıyı çarptığımızda basamak sayısı 300’den fazla yeni bir sayı elde ederiz.

p*q=N bu işlem çok kısa sürer. N sayısının asal çarpanlarını yani p ve q yi saklıyoruz. N sayısını istediğimiz gibi dağıtabiliriz. Çünkü N sayısının asal çarpanlarını bulmak yıllar alacak bir işlemdir.

 

φ(n) = (p-1)(q-1)  n sayısının çarpanlarını biliyorsak φ(n) sayısını da kolayca elde edebiliriz. Peki φ(n) fonksiyonunu modüler olarak üs almayla nasıl ilişkilendirebiliriz? Burada Euler teorisine başvurmamız gerekiyor. Konumuzu daha da dağıtmamak için burayı karıştırmıyorum.

 

Alice Bob’a mesaj göndermek istediğinde şu işlemleri uygulaması gerekir;

 

  • Alice p ve q olmak üzere iki tane çok büyük asal sayı seçer
  • N=p*q ile N sayısı hesaplar.
  • φ(n) = (p-1)(q-1)  fonksiyonu ile N sayısının totient değerini hesaplar.
  • 1 < e < φ(N) ve EBOB(e, φ(N)) = 1 şartını sağlayacak “e” sayısı seçer bu sayı küçük olursa mod ve üs alma işlemlerinde daha performanslı çalışabiliriz.
  • e ≡ 1 (mod φ(N)) d sayısı hesaplar. Bu değer genişletilmiş Öklid algoritması ile hesaplanabilir.
  • me mod N=c şifrelenmiş metin gönderir.

Bob şifreyi çözmek isterse m=cd mod N fonksiyonu ile şifreyi çözer ve mesajı okur.

 

Örnek;

  • p=53 q=59
  • N=53*59=3127
  • φ(n)=(53-1)*(59-1)=3016
  • e=3
  • d=(2*(3016)+1)/3=2011
  • 893 mod 3127=1394
  • 13972011=89 mod 3127

 

 

Yararlandığım kaynaklar

http://www.di-mgt.com.au/rsa_alg.html#note6

https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

https://tr.wikipedia.org/wiki/RSA#Euler_teoremi_ile_ispat.C4.B1

4.5G İhalesi Sonuçları

4.5G ihalesi bugün sonuçlandı. İhaleye 5 şirket katılmıştı fakat Netgsm ihaleye katılmadı. Hangi firma neler kazandı hep birlikte inceleyelim.

Turkcell

turkcell

Paket Frekans Frekans Türü Bant Genişliği Minimum Bedel(milyon euro) İhale Bedeli(milyon euro)
A3 800 MHz FDD 2×10 372.9 372.9
B2 900 MHz FDD 2×1.4 39.9 39.9
C1 1800 MHz FDD 2×29.8 283.4 430
D1 2100 MHz FDD 2×5 35.7 160
D2 2100 MHz FDD 2×5 35.7 188
D3 2100 MHz FDD 1×10 35.7 35.66
E1 2600 MHz FDD 2×25 64.6 384
F3 2600 MHz TDD 1×10 12.9 12.9

Vodafone

vodafone

Paket Frekans Frekans Türü Bant Genişliği Minimum Bedel(milyon euro) İhale Bedeli(milyon euro)
A1 800 MHz FDD 2×10 372.9 390
B3 900 MHz FDD 2×1.4 39.9 39.9
C3 1800 MHz FDD 2×10 95.1 95.1
F2 2600 MHz TDD 1×10 12.9 12.9

Avea

avea

Paket Frekans Frekans Türü Bant Genişliği Minimum Bedel(milyon euro) İhale Bedeli(milyon euro)
A2 800 MHz FDD 2×10 372.9 380
B1 900 MHz FDD 2×7.6 216.8 216.8
C2 1800 MHz FDD 2×20 190.2 310
E2 2600 MHz FDD 2×15 38.8 240
E3 2100 MHz FDD 2×10 25.9 25.86
F1 2600 MHz TDD 1×15 19.4 22

Satılmayanlar

Paket Frekans Frekans Türü Bant Genişliği Minimum Bedel(milyon euro) İhale Bedeli(milyon euro)
E4 2600 MHz FDD 2×10 0 0
F4 2600 MHz TDD 1×5 0 0
  • İhalede toplam 3.355.9 milyon lira ödeme yapılacak.
  • Toplam bedelin 1.620 milyon lirasını Turkcell, 777.9 milyon lirasını Vodafone, 954.6 lirasını Avea ödeyecek.