Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Linux üzerinde SQL Server
Bu öğreticide , adutil kullanarak Linux üzerinde SQL Server için Windows Active Directory kimlik doğrulamasını yapılandırma açıklanmaktadır. ktpass kullanarak Active Directory kimlik doğrulamasını yapılandırmanın başka bir yöntemi için bkz. Öğretici: Linux üzerinde SQL Server ile Active Directory kimlik doğrulamasını kullanma.
Bu öğretici aşağıdaki görevlerden oluşur:
- adutil yükle
- Linux makinesini Active Directory etki alanınıza ekleme
- SQL Server için bir Active Directory kullanıcısı oluşturma ve adutil kullanarak Hizmet Asıl Adı'nı (SPN) ayarlama
- SQL Server hizmet anahtar sekmesi (anahtar tablosu) dosyasını oluşturma
- SQL Server'ı anahtar sekmesi dosyasını kullanacak şekilde yapılandırma
- Transact-SQL kullanarak Active Directory tabanlı SQL Server oturum açma bilgileri oluşturma
- Active Directory kimlik doğrulamasını kullanarak SQL Server'a bağlanma
Önkoşullar
Active Directory kimlik doğrulamasını yapılandırmadan önce şunları yapmanız gerekir:
- Ağınızda Active Directory Etki Alanı Hizmetleri çalıştıran bir Windows Etki Alanı Denetleyicisi.
- Etki alanına katılmış bir konak makinesine adutil aracı yüklendi.
Alan adı makine hazırlama
Linux ana bilgisayar IP adresi için Active Directory'de bir iletme ana bilgisayarı (A) girdisi eklendiğinden emin olun. Bu öğreticide, sql1 konak makinesinin IP adresi 10.0.0.10 şeklindedir. Aşağıdaki örnekte Active Directory'de iletme ana bilgisayar girdisini ekleyeceğiz. Giriş, kullanıcılar sql1.contoso.com'a bağlandığında doğru konağa ulaşmalarını sağlar.
Bu öğretici için Azure'da üç sanal makine içeren bir ortam kullanırsınız. Bir sanal makine (VM), adVM.contoso.com adlı, contoso.com etki alanı adıyla Etki Alanı Denetleyicisi (DC) olarak çalışan bir Windows Server bilgisayarıdır. İkinci VM, SQL Server Management Studio 'nun (SSMS) yüklü olduğu adlı winboxWindows 10 çalıştıran bir istemci makinesidir. Üçüncü makine, SQL Server'ı barındıran adlı sql1bir Ubuntu 18.04 LTS makinesidir.
Linux konak makinesini Active Directory etki alanınıza ekleme
Active Directory etki alanına katılmak sql1 için bkz. Linux konağındaki SQL Server'ı Active Directory etki alanına ekleme.
Adutil'i yükleme
adutil'i yüklemek için, önceki adımda etki alanına eklediğiniz konak makinede adutil - Active Directory yardımcı programı tanıtımı makalesinde açıklanan adımları izleyin.
ADutil kullanarak SQL Server için bir Active Directory kullanıcısı oluşturun ve Hizmet Asıl Adı'nı (SPN) ayarlayın
kinitkomutunu kullanarak Kerberos TGT'sini (bilet verici bilet) alın veya yenileyin.kinitkomutu için ayrıcalıklı bir hesap kullanmanız ve ana bilgisayarın zaten etki alanının parçası olması gerekir. Hesabın etki alanına bağlanmak ve etki alanında hesaplar ve SPN'ler oluşturmak için izne ihtiyacı vardır.Bu örnek betikte, etki alanı denetleyicisinde
privilegeduser@CONTOSO.COMadlı ayrıcalıklı bir kullanıcı zaten oluşturulmuştur.kinit privilegeduser@CONTOSO.COMadutil kullanarak SQL Server tarafından ayrıcalıklı Active Directory hesabı olarak kullanılacak yeni kullanıcıyı oluşturun.
Parolalar üç farklı şekilde belirtilebilir. Bu yöntemlerden birden fazlasını kullanırsanız, bunlar aşağıdaki sırayla öncelik kazanır:
- Parola bayrağını kullanma:
--password <password> - Ortam değişkeninde:
ADUTIL_ACCOUNT_PWD - Komut satırı isteminde etkileşimli giriş
Ortam değişkeni veya etkileşimli giriş yöntemleri parola bayrağından daha güvenlidir.
adutil user create --name sqluser --distname CN=sqluser,CN=Users,DC=CONTOSO,DC=COM --password '<password>'Daha önce gösterildiği gibi ayırt edici adı (
--distname) kullanarak hesabın adını belirtebilir veya Kuruluş Birimi (OU) adını kullanabilirsiniz. OU adı (--ou), her ikisini de belirtmeniz durumunda ayırt edici addan önceliklidir. Daha fazla ayrıntı için aşağıdaki komutu çalıştırabilirsiniz:adutil user create --helpDikkat
Parolanız,SQL Server varsayılan
parola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın. - Parola bayrağını kullanma:
SPN'leri daha önce oluşturulan sorumluya kaydedin. Cihazın tam alan adını (FQDN) kullanmanız gerekir. Bu öğreticide SQL Server'ın varsayılan bağlantı noktası olan 1433'i kullanacağız. Bağlantı noktası numaranız farklı olabilir.
adutil spn addauto -n sqluser -s MSSQLSvc -H sql1.contoso.com -p 1433-
addauto, hesap içinkinityeterli ayrıcalıklar olduğu sürece SPN'leri otomatik olarak oluşturur. -
-n: SPN'leri atanacak hesabın adı. -
-s: SPN oluşturmak için kullanılacak hizmet adı. Bu durumda SQL Server hizmetine yöneliktir ve bu nedenle hizmet adı şeklindedirMSSQLSvc. -
-H: SPN oluşturmak için kullanılacak ana bilgisayar adı. Belirtilmezse, yerel ana bilgisayarın FQDN'si kullanılır. Bu durumda, ana bilgisayar adısql1, ve FQDNsql1.contoso.com'dir. -
-p: SPN oluşturmak için kullanılacak bağlantı noktası. Belirtilmezse, SPN'ler bağlantı noktası olmadan oluşturulur. SQL bağlantıları bu durumda yalnızca SQL Server örneği varsayılan bağlantı noktası olan 1433'i dinlediğinde çalışır.
-
mssql-conf kullanarak SQL Server hizmet anahtar sekmesi dosyasını oluşturma
doğrudan mssql-conf kullanarak anahtar sekmesini oluşturmak ve yapılandırmak için adutil'i yükleyebilir ve mssql-conf ile tümleştirebilirsiniz. Bu yöntem, SQL Server hizmet anahtar sekmesi dosyası oluşturmak için tercih edilir. Aksi takdirde , SQL Server hizmet anahtar sekmesi dosyasını el ile oluşturabilirsiniz.
Önkoşullar
mssqlkullanıcısının/var/opt/mssql/mssql.confdosyasına sahip olduğundan verootolmadığından emin olun. Aksi takdirde,sudokomutlarını kullanarak çalıştırmanız gerekir.Etki alanı denetleyicisinde, hesabın Active Directory ayarlarında
network.privilegedadaccount(bu örneklerdesqluser@CONTOSO.COM), Hesap sekmesinin Hesap seçenekleri bölümünde aşağıdaki seçenekleri etkinleştirin:- Bu hesap Kerberos AES 128 bit şifrelemeyi destekler
- Bu hesap Kerberos AES 256 bit şifrelemeyi destekler
Tuş sekmesi dosyasını oluşturma
Kullanıcı ve SPN'leri oluşturduktan sonra, aşağıdaki adımları kullanarak anahtar sekmesini oluşturabilirsiniz.
oracleKullanıcıya geçin:su mssqlKomutunu kullanarak
kinitActive Directory kullanıcısı olarak oturum açın:kinit privilegeduser@CONTOSO.COMAnahtar sekmesi dosyasını oluşturun:
/opt/mssql/bin/mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluserYeni Active Directory yapılandırmasını benimsemek için SQL Server hizmetini yeniden başlatmanız istendiğinde, sonraki bölümde bunu yapabilirsiniz.
Anahtar sekmesinin doğru girişlerle oluşturulduğunu onaylayın:
klist -kte /var/opt/mssql/secrets/mssql.keytabBu örneğe benzer bir çıktı görmeniz gerekir:
keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 12/30/2021 14:02:08 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)Dosya
/var/opt/mssql/mssql.conftarafından sahiplenilmemişse,mssql'yi venetwork.kerberoskeytabfiledeğerlerini önceki adımlara göre ayarlamak için yapılandırmanız gerekir. İstendiğinde parolayı yazın./opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab /opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluserActive Directory kimlik doğrulamasının sorunsuz çalıştığından emin olmak için yapılandırmanızı doğrulayın.
/opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytabAşağıdaki örneğe benzer bir çıktı görmeniz gerekir:
Detected Configuration: Default Realm: CONTOSO.COM Keytab: /var/opt/mssql/secrets/mssql.keytab Reverse DNS Result: sql1.contoso.com SQL Server Port: 1433 Detected SPNs (SPN, KVNO): (MSSQLSvc/sql1.CONTOSO.COM:1433, 4) (MSSQLSvc/sql1.CONTOSO.COM, 4) (MSSQLSvc/sql1:1433, 4) (MSSQLSvc/sql1, 4) Privileged Account (Name, KVNO): (sqluser, 4)
SQL Server hizmet anahtar sekmesi dosyasını el ile oluşturma
adutil'i yüklediyseniz ve mssql-conf ile tümleştirdiyseniz, mssql-conf kullanarak SQL Server hizmet anahtar sekmesi dosyasını oluşturma bölümüne atlayabilirsiniz.
Daha önce oluşturulan dört SPN'nin her biri için girdileri ve kullanıcı için bir tane içeren anahtar sekmesi dosyasını oluşturun.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H sql1.contoso.com --password '<password>' -s MSSQLSvcDikkat
Parolanız,SQL Server varsayılan
parola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın. Olası komut satırı seçenekleri şunlardır:
-
-k: Dosyanın oluşturulduğu yolmssql.keytab. Önceki örnekte,/var/opt/mssql/secrets/dizini konakta zaten mevcut olmalıdır. -
-p: SPN oluşturmak için kullanılacak bağlantı noktası. Belirtilmezse, SPN'ler bağlantı noktası olmadan oluşturulur. -
-H: SPN oluşturmak için kullanılacak ana bilgisayar adı. Belirtilmezse, yerel ana bilgisayarın FQDN'si kullanılır. Bu durumda, ana bilgisayar adısql1, ve FQDNsql1.contoso.com'dir. -
-s: SPN oluşturmak için kullanılacak hizmet adı. Bu örnekte, SQL Server hizmet adı şeklindedirMSSQLSvc. -
--password: Daha önce oluşturulan ayrıcalıklı Active Directory kullanıcı hesabının parolası. -
-eveya--enctype: Anahtar sekmesi girdisi için şifreleme türleri. Virgülle ayrılmış bir değer listesi kullanın. Belirtilmezse, etkileşimli bir istem sunulur.
Ana bilgisayarınız ve etki alanınız şifreleme türünü desteklediği sürece birden fazla şifreleme türü seçebilirsiniz. Bu örnekte
aes256-cts-hmac-sha1-96veaes128-cts-hmac-sha1-96seçeneklerini belirleyebilirsiniz. Ancak, bir üretim ortamında şifrelemesi zayıf olduğundan kaçınmalısınızarcfour-hmac.İstenmeden şifreleme türünü seçmek isterseniz, önceki komuttaki bağımsız değişkeni kullanarak
-eşifreleme türü seçiminizi belirtebilirsiniz. Daha fazla yardım içinadutil keytabseçenekler hakkında şu komutu çalıştırın:adutil keytab createauto --help-
SQL Server'ın Active Directory'ye bağlanmak için kullandığı asıl ad ve parola için anahtar sekmesine bir girdi ekleyin:
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<password>'Dikkat
Parolanız,SQL Server varsayılan
parola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın. -
-k:mssql.keytabdosyasını oluşturmak istediğiniz yol. -
-p: Anahtar sekmesine eklenecek sorumlu.
adutil keytab [ create | autocreate ]önceki dosyaların üzerine yazmaz; zaten varsa yalnızca dosyanın sonuna eklenir.-
mssqlkullanıcısının oluşturulan keytab dosyasına sahip olduğundan ve yalnızcamssqlkullanıcısının dosyaya okuma/yazma erişimi olduğundan emin olun.chownvechmodkomutlarını aşağıdaki gibi çalıştırabilirsiniz:chown mssql /var/opt/mssql/secrets/mssql.keytab chmod 440 /var/opt/mssql/secrets/mssql.keytab
SQL Server'ı tuş sekmesini kullanacak şekilde yapılandırma
SQL Server'ı önceki adımda oluşturulan tuş sekmesini kullanacak şekilde yapılandırmak için aşağıdaki komutları çalıştırın ve ayrıcalıklı Active Directory hesabını kullanıcının daha önce oluşturduğu şekilde ayarlayın. Örneğimizde kullanıcı adı şeklindedir sqluser.
/opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab
/opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluser
SQL Server'ın yeniden başlatılması
SQL Server hizmetini yeniden başlatmak için aşağıdaki komutu çalıştırın:
sudo systemctl restart mssql-server
Transact-SQL'de Active Directory tabanlı SQL Server oturum açma bilgileri oluşturma
SQL Server örneğine bağlanın ve aşağıdaki komutları çalıştırarak oturum açma bilgilerini oluşturun ve var olduğunu onaylayın.
CREATE LOGIN [contoso\privilegeduser]
FROM WINDOWS;
SELECT name
FROM sys.server_principals;
Active Directory kimlik doğrulamasını kullanarak SQL Server'a bağlanma
SQL Server Management Studio (SSMS) kullanarak SQL Server örneğine bağlanmak için Windows kimlik bilgilerinizi kullanın.
Windows Kimlik Doğrulaması kullanarak SQL Server örneğine bağlanmak için sqlcmd yardımcı programı gibi bir araç da kullanabilirsiniz.
sqlcmd -E -S 'sql1.contoso.com'
İlgili içerik
- Linux ve kapsayıcılarda SQL Server için Active Directory kimlik doğrulamasını anlama
- Linux ve kapsayıcılarda SQL Server için Active Directory kimlik doğrulaması sorunlarını giderme
- Linux üzerinde SQL Server için Active Directory kimlik doğrulaması
- Eğitim: Linux kapsayıcılarında SQL Server ile Active Directory kimlik doğrulamasını yapılandırma
- Linux'ta SQL Server için anahtar sekmelerini döndürme