Always-On Mimarisinde gMSA Hesabı Tanımlama

Serdar BAYRAK

Updated on:

Bu makalede Always-On mimarisinde SQL Server Engine ve Agent kullanıcı hesaplarının domainde gMSA kullanıcı hesabı olarak değiştirme işlemlerinin yapılması anlatılmıştır.

Step 1: gMSA kullanıcı Tanımlamak için ilk önce tanımlanacak cluster’a bağlı sunucularda server manager kısmında role administration kısmından tanımlama yapılır.

Step 2: Active Directory den gMSATEST (Kullanıcı adı SQL Server Engine üzerinde görüneceğinden bu ad tamamen sizin isteğinize bağlıdır.) kullanıcısı oluşturulur.

Step 3: Active Directory’den aşağıdaki komutla gMSA kullanıcıları için yeni oluşturulacaklar dâhil otomatik SPN yapılması için ayar yapılır.

Step 4: PowerShell üzerinden (Her bir clustera bağlı sunucular üzerinden tek tek yapmaya gerek yok tek birinde yapmamız tüm cluster’a bağlı sunucularda ayar uygulanmakta)

Step 5: Server Manager’dan Role feature’lardan Remote Server Administration altında ad-ds kısmı yüklenir.

True

Yukarıdaki scriptlerden dönüş alınması önemli alınmadığı takdirde;

script ile sunucu isimleri kontrol edilir. Sunucular doğru ise devam edilir (değer olarak 0’lı bir guid Id basacaktır) farklı ise AD Ekibinden değişiklik istenir.

Script Çıktısı Örn.

DistinguishedName : CN=gMSATEST,CN=Managed Service Accounts,DC=intranet,DC=intra

Enabled: True

Name: gMSATEST

ObjectClass: msDS-GroupManagedServiceAccount

ObjectGUID: 2z1c887ep-52a5-4dd2-3125-101s6c8c1453

PasswordLastSet: 07.06.2021 10:58:42 AM

SamAccountName: gMSATEST$

SID: S-8-2-31-2884678545-789615522-620645608-1474186

Step 6: SQL Server Configuration Manager’dan sunucu için servis hesapları değiştirilecektir. Değişim sonrası engine restart edilir.

Step 7: gMSA hesabı oluşturulan Instance’da kullanıcıları oluşturup endpoint ayarı yapılması gerekiyor. (Bu ayar yapılmazsa AlwaysOn endpoint’ler değiştirmeden önce disconnect oluyor);

ALTER AUTHORIZATION ON ENDPOINT:: Hadr_endpoint TO [DomaingMSATEST$];

Step 8: Kullanıcının (Engine Kullanıcısı, bizim Engine Kullanıcımız ‘Domaintestuser’) tüm sahiplikleri kaldırıldıktan sonra aşağıdaki işlemler yapılır.

-1-) Database Owner Change Script; Kullanıcının sahip olduğu tüm database sahiplikleri [sa] olarak değiştirilir.

 

–2-) Database Jobs Change Script; Agent kullanıcısında gMSA yapacağımız için buradaki tüm sahiplikleri [sa] olarak değiştirilir.

 

–3-) Availability Group Sahiplik Scripti; ile eski kullanıcı eğer availability group sahibi ise sahiplikleri değiştirilir.

 

–4-) Schema ve Object Sahiplik Scripti; ile eski kullanıcı eğer schema ve object sahibi ise sahiplikleri değiştirilir. Bu değişikliği loop döngüsünde yapan sistem sp’si ile yapılır.

 

–5-) Login Açık olan Kullanıcı Scripti; aşağıdaki script ile tespit edilip kill edilir.

 

Step 9: Tüm bu işlemler bittikten sonra aşağıdaki adımlar kontrol edilir, varsa değiştirilmesi gereken adımlar değiştirilir.

  • Eski servis kullanıcısın bilgisayarlarda sign off olduğundan emin olunmalı.
  • Alınan Son backup kontrollerinin çalışması için credential hesabının değiştirilmesi ve bu kullanıcı veri tabanlarında sysadmin olarak eklenmeli.
  • Backup Alınan dosyalarda eski servis kullanıcısın yetkisi olduğundan yeni bir folder oluşturulup advance share yaparak. Yeni servis hesabına full control verilmeli ve everyone yetkisi kaldırılmalı.
  • Eski servis hesabının, yeni servis hesabı eklenen sunucuların computer management=>Local User and Groups kısmından kaldırılması.

Yorum yapın