MacOs ile Microsoft Sql Server & Management Studio

Aydın Ayaydın
KoçSistem
Published in
7 min readOct 30, 2023

Bu makale için bana büyük desteği olan çalışma arkadaşım Ebru Dikmen’e çok teşekkür ederim.

Bir Windows kullanıcısı olarak çalışırken Mac kullanmak üzere radikal bir karar aldığınızda yaptığınız çalışmalar MsSql kullanmanızı gerektiriyor ise öncelikle fazlaca radikal bir karar almışsınız demektir. Bir de kullanacağınız Mac bilgisayar M1 veya M2 işlemciye sahipse değerlendirmeniz gereken daha çok konu var demektir. İyi haber ise, günümüzde bu konuda birçok ihtiyacın çözümü mevcut. Nasıl olduğuna beraber bakalım.

MsSql Server Kurulumu

Eğer uzak sunucuda SqlServer kullanmadan kendi local Mac bilgisayarınızda Sql Server kullanmanız gerekiyorsa bunun için Windows cihazlardaki gibi doğrudan server kurulumu yapılamıyor. Yani aslında Sql Server MacOs’da kullanılamıyor. Tabi bu konuda güzel haberler var.

Microsoft, Sql Server platformu bir süredir Linux dağıtımına sahip. Bu da bize bir kapı açıyor:

Docker; bilmeyenler için özetlemek gerekirse, aynı işletim sistemi içerisinde birbirinden izole ve bağımsız sanal makineler oluşturabilmenizi sağlayan bir açık kaynak container teknolojisidir.

Sql Server içeren bir container oluşturularak docker içerisinde bir image ayağa kaldırılabilir. Böylece Sql Server ihtiyacını giderebiliriz. Microsoft Sql Server için var olan imajları incelemek için aşağıdaki bağlantıyı inceleyiniz:
https://hub.docker.com/_/microsoft-mssql-server

Dikkat ettiyseniz ilgili imaj sadece amd64 mimarisine sahip donanımlarda desteklenmektedir. Yani elinizde 2020 ve sonrasına ait bir Mac var ise büyük ihtimalle M1-M2 (arm64) çip kullanıcısı oluyorsunuz ki bu da sizi yukarıdaki dağıtımdan mahrum bırakıyor. Bu konuda 2 çözüm önerilebilir:

  • Docker için Rosetta emülatörü aktifleştirebilirsiniz (Bu özelliğin kullanımı için MacOs ve Docker sürümlerinizi kontrol edin). En kolay yol bu olsa da performans konusunda daha fazla ram tüketimi ve zaman zaman bu şekilde çalıştırılan imajların çökmesi gibi sorunlar yaşayabilirsiniz.
    (Kaynak: https://docs.docker.com/desktop/troubleshoot/known-issues/ )
    Docker CLI için aşadaki komutla container çalıştırmalısınız ya da Docker Desktop için görseldeki ayarı açmanız lazım.
docker run <image> --platform linux/amd64
Docker Desktop Rosetta Emulatör Ayarı
  • Azure Sql Edge; Eylül 2020’de genel kullanıma açıldığı duyuruldu. Bu platform aslında IoT uygulamaları ve çözümleri için yüksek performans içeren Sql Server’ın son sürümleri üzerine geliştirilmiş bir platformdur. Tabi bildiğimiz Sql Server’ın bütün özelliklerini desteklediği için Azure Sql Edge imajı da docker içerisinde kullanılabilir. Ancak Eylül 2023 itibari ile Microsoft bu platformun arm64 desteğini kestiğini açıkladı. Mevcut versiyonlar hala kullanımda olacak ancak yeniliklere ve güvenlik güncellemelerine artık MacOs için kapalı.
    (Kaynak: https://learn.microsoft.com/tr-tr/azure/azure-sql-edge/overview )

Server tercihleri konusunda özetleme yapacak olursak Apple Silicon çiplerin yani arm64 tabanlı M1-M2 çiplerin çıkmasıyla Mac kullanıcı topluluğu içerisinde yeniden düzenlemelere gidildi. Eylül 2023 e kadar Azure Sql Edge community içerisinde local Sql Server ihtiyacı için en iyi çözüm iken Docker’a çıkan emulatör desteği ve Micrsoft’un açıklamaları artık Eylül 2023 itibari ile Azure Sql Edge kullanımını bir kenara atıyor.

(Kaynak: https://techcommunity.microsoft.com/t5/sql-server-blog/azure-sql-edge-update-september-2023/ba-p/3930827 )

Microsoft’un önerisi üzerine Sql Server kurulum için izlenecek adımlar :

  • Docker kurulumunu yapın. Bunun için doğrudan Docker Desktop indirilebilir veya aşağıdaki kaynak üzerinden kurulum adımları takip edilebilir.
    https://docs.docker.com/desktop/install/mac-install/
  • Yukarıda bahsedilen Rosetta emülatörü etkinleştirin.
  • Terminal açın ve Sql Server’ın tercih ettiğiniz versiyonuna ait docker imajını aşağıdaki komutlar yardımıyla kurun ve çalıştırın:
docker pull mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 - name sql2022 - hostname sql2022 -d mcr.microsoft.com/mssql/server:2022-latest

Böylece Sql Server kurulumu tamamlanmış oluyor. İmaj portu ile local portunuz köprülendiğinden Docker içerisinde Sql Server imaj çalıştığı sürece Windows makinenizde lokalde kullandığınız serverdan farksız şekilde çalışmalarınızı yapabileceksiniz. Peki bu Sql Server’a MacOs da nasıl bağlanabiliriz?

Management Studio Tool

Microsoft SQL Server Management Studio (SSMS) bir Windows uygulamasıdır ve doğrudan Mac işletim sistemlerinde çalıştırılamaz. Bu nedenle, Macbook Air M1 veya M2 cihazlarında SSMS kullanmak için bazı alternatif yaklaşımlara ihtiyaç duyarsınız. Bu yaklaşımlardan biri de alternatif veritabanı yönetim araçları kullanmaktır.

Management araçları, veritabanları ile çalışırken işlerinizi daha verimli hale getiren önemli unsurlardan biridir. Bu araçlar, SQL sorgularını yazmak, veritabanı yapılarını yönetmek, veri analizi yapmak ve genel olarak veritabanı işlemlerini daha kullanıcı dostu bir şekilde gerçekleştirmenize yardımcı olurlar. Bu yazıda sizin için seçtiğimiz iki aracı paylaşıyor olacağız.

DBeaver: Ücretsiz ve Açık Kaynaklı Bir SQL Yönetim Aracı

DBeaver birçok veritabanı sistemini destekleyen, ücretsiz ve açık kaynaklı bir SQL yönetim aracıdır. Macbook Air veya diğer işletim sistemlerinde kullanılabilir. İşte DBeaver’ın bazı özellikleri:

  1. Çoklu Veritabanı Desteği: DBeaver, MySQL, PostgreSQL, SQLite, Oracle, SQL Server gibi birçok veritabanı yönetim sistemiyle uyumlu çalışır.
  2. Gelişmiş SQL Düzenleyici: DBeaver, kullanıcı dostu bir SQL düzenleyici sunar. SQL sorgularını yazmak, düzenlemek ve test etmek için idealdir.
  3. Veri Görselleştirme: Verileri grafiksel olarak görselleştirebilirsiniz, bu da veri analizi işlemlerini kolaylaştırır.
  4. Veritabanı Yönetimi: DBeaver, veritabanı yapısı ve nesnelerini (tablo, indeks, fonksiyonlar vb.) yönetmek için kullanışlı araçlar sunar.
  5. Veri Aktarımı ve İçe/Dışa Aktarma: Veri aktarım işlemleri için kullanabileceğiniz birçok seçenek sunar.

DataGrip: Profesyonel SQL Yönetim Aracı

DataGrip, JetBrains tarafından geliştirilen bir SQL yönetim aracıdır. Ücretli bir yazılımdır, ancak sunduğu özellikler ve performans ile birçok profesyonel veritabanı geliştiricileri tarafından tercih edilmektedir. İşte DataGrip’in bazı özellikleri:

  1. Veri Analizi ve Görselleştirme: DataGrip, verilerinizi analiz etmek ve grafiklerle görselleştirmek için kapsamlı bir araç seti sunar.
  2. Yüksek Veritabanı Desteği: PostgreSQL, MySQL, Microsoft SQL Server, Oracle ve diğer birçok veritabanı yönetim sistemini destekler.
  3. SQL Kod Geliştirme ve Hata Ayıklama: SQL kodunuzu geliştirmeniz ve hata ayıklamanız için kapsamlı bir ortam sunar.
  4. Veritabanı Tasarım ve Yönetim: Veritabanı şemalarını tasarlamak, tabloları oluşturmak ve veritabanı yönetimi için araçlar içerir.
  5. Entegrasyon ve Otomasyon: DataGrip, dış kaynak kod yönetimi sistemleri ve veritabanı sistemleriyle entegrasyon sağlar. Ayrıca, otomasyon için özelleştirilebilir iş akışları oluşturmanıza olanak tanır.

Bu araçlar, veritabanı geliştiricileri ve veri analistleri için güçlü birer yardımcıdır. Macbook Air kullanıcıları, ihtiyaçlarına ve tercihlerine göre uygun veritabanı yönetim aracını seçebilirler.

Connections

Bir önceki bölümde, kullanabileceğiniz vertabanı yönetim araçlarından örnekler verdik.

Bu bölümde ise, bu araçlardan birini kullanarak, SQL Authentication ve Windows Domain Authentication ile MS SQL server bağlantısını nasıl yapabileceğimizi anlatıyor olacağız.

Macbook’unuza yüklediğiniz Management Studio aracında ilk olarak New Database Connection (aşağıdaki görsellerde DBeaver’dan örnek verilmiştir) penceresini açmalıyız.

Açılan pencerede ilk olarak bizden uygun bir sürücü seçmemiz beklenecektir. Burada özellikle MS SQL Server (Old driver, jTDS) sürücüsünü seçip bağlantı ayarlarını yapmaya devam etmeliyiz.

Sürücüyü seçip Next butonu ile ilerlediğimizde, bağlantı ayarlarını yapabileceğimiz pencereye erişim sağlarız.

Burada devam etmeden önce, “Download missing driver files” gibi bir uyarı mesajı görüp görmediğimizi kontrol etmeliyiz ve eğer görüyorsak, mesajın içindeki tıklanabilir bağlantı ile eksik dosyaları indirmeliyiz. Eğer böyle bir link görmüyorsanız, gerekli olan dosyaların halihazırda yüklü olduğunu varsayabiliriz.

Tüm bu kontrolleri yaptıktan sonra, bağlantı ayarlarını gireceğimiz bölümde sırasıyla aşağıdaki konfigürasyonları yapmamız gerekiyor.

Main sekmesinde:

· Host alanının doldurulması

· Bağlantı kurmak istediğiniz belirli bir Database veya Schema var ise adının yazılması

Bu adımdan sonra izleyeceğiniz yol bağlantı seçiminize göre farklılık gösterecektir.

SQL authentication ile ilerliyorsanız;

1. Kullandığınız yönetim aracına göre Authentication yöntemi seçmemiz gerekebilir. Örneğin DataGrip kullanıyorsanız, “User & Password” yöntemini seçmemiz gerekiyor. Eğer kullandığınız araç DBeaver ise, bu seçimi yapmanıza gerek olmayacaktır.

2. Ardından her iki araçta da username ve password bilgilerimizi doldurmamız gerekiyor.

DBeaver Sql Authentication

Windows Domain Authentication ile ilerliyorsanız;

1. Kullandığınız yönetim aracına göre Authentication yöntemi seçmemiz gerekebilir. Örneğin DataGrip kullanıyorsanız, “Domain Credential” yöntemini seçmemiz gerekiyor. Eğer kullandığınız araç DBeaver ise, bu seçimi yapmanıza gerek olmayacaktır.

2. Ardından her iki araçta da username ve password bilgilerimizi doldurmamız gerekiyor.

DBeaver Windows Authentication Genel Ayarları

3. Bağlanmak istediğimiz Domain’i girmemiz gerekiyor. Bu bilgiyi girdiğiniz yer kullandığınız araca göre farklılık gösterebilir. Örneğin DBeaver’da Driver properties sekmesi altındayken, DataGrip kullanıcıları bu bilgiyi General sekmesi altında, bağlantı ayarlarını yaptığı yerde girecektir. Aşağıdaki görsellerde her iki örneği de görebiliriz.

DBeaver Windows Authentication Driver Ayarları
Datagrip Windows Authentication Driver Ayarları

4. Bu aşamaya kadar girdiğiniz bilgilerle bağlanmaya çalıştığınızda aşağıdaki görseldeki hatayı alıyorsanız, son olarak USENTLMV2 alanının true olarak değiştirip tekrar bağlantıyı denemenizi tavsiye ederiz. Bu parametreyi BDeaver uygulamasında Driver properties sekmesinde buluyorken, DataGrip kullanıcıları bu bilgiyi Advanced sekmesinde bulabileceklerdir. Bu parametre ile ilgili daha detaylı bilgiye aşağıdaki kaynaklardan erişebilirsiniz.
(Kaynak1: https://www.jetbrains.com/help/datagrip/db-tutorial-connecting-to-ms-sql-server.html#macos-and-linux
Kaynak2: https://learn.microsoft.com/en-us/sql/connect/jdbc/using-ntlm-authentication-to-connect-to-sql-server?view=sql-server-ver16)

DBeaver Windows Authentication Bağlantı Hatası
DBeaver Windows Authentication USENTLMV2 Ayarı
Datagrip Windows Authentication USENTLMV2 Ayarı

Uygun gördüğümüz bağlantı ayarlarımızı yaptıktan sonra, ekranın sol altında bulunan “Test Connection” butonu ile bağlantımızı test edebilir ve “Succeeded” sonucu aldığımızda, yaptığımız bağlantıyı kaydedip çıkabiliriz. Sonrasında yeni bir script sayfası açıp bağlantı kurduğumuz Database üzerinde çalışmaya başlayabiliriz.

Datagrip SQL /Windows authentication için kaynak: https://www.jetbrains.com/help/datagrip/db-tutorial-connecting-to-ms-sql-server.html#macos-and-linux

--

--