Öğretici: Microsoft Entra oturum açma bilgileriyle güvenli - Azure SQL Yönetilen Örneği
Şunlar için geçerlidir: Azure SQL Yönetilen Örneği
Bu makalede, Azure SQL Yönetilen Örneği güvenliğini sağlamak için Microsoft Entra Id (eski adı Azure Active Directory) tarafından yedeklenen sunucu sorumlularını (oturum açma bilgileri) kullanmayı öğrenin.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Yönetilen örnek için Microsoft Entra oturum açma bilgisi oluşturma
- Yönetilen örnekte oturum açma işlemlerine izin verme
- Oturum açma bilgileriyle Microsoft Entra kullanıcıları oluşturma
- Kullanıcılara izin atama ve veritabanı güvenliğini yönetme
- Kullanıcılarla kimliğe bürünme kullanma
- Kullanıcılarla veritabanları arası sorgular kullanma
- Tehdit koruması, denetim, veri maskeleme ve şifreleme gibi güvenlik özellikleri hakkında bilgi edinin
Not
Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Önkoşullar
Öğreticiyi tamamlamak için aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
- SQL Server Management Studio (SSMS)
- Yönetilen örnek
- Şu makaleyi izleyin: Hızlı Başlangıç: Yönetilen örnek oluşturma
- Yönetilen örneğine erişebiliyor ve yönetilen örnek için bir Microsoft Entra yöneticisi sağlandı. Daha fazla bilgi edinmek için bkz:
Erişimi sınırla
Yönetilen örneklere özel bir IP adresi üzerinden erişilebilir. Yalıtılmış SQL Server ortamına benzer şekilde, uygulamaların veya kullanıcıların bağlantı kurulabilmesi için önce SQL Yönetilen Örneği ağına (VNet) erişmesi gerekir. Daha fazla bilgi için bkz. Uygulamanızı SQL Yönetilen Örneği'ne bağlama.
Yönetilen örnekte bir hizmet uç noktası yapılandırmak da mümkündür ve bu da Azure SQL Veritabanı ile aynı şekilde genel bağlantılara olanak tanır. Daha fazla bilgi için bkz. Azure SQL Yönetilen Örneği’nde genel uç noktayı yapılandırma.
SSMS kullanarak Microsoft Entra oturum açma bilgileri oluşturma
İlk Microsoft Entra oturum açma bilgileri SQL yöneticisi veya sağlama sırasında oluşturulan Microsoft Entra yöneticisi tarafından oluşturulabilir. Daha fazla bilgi için bkz. SQL Yönetilen Örneği için Microsoft Entra yöneticisi sağlama.
SQL Yönetilen Örneği bağlanma örnekleri için aşağıdaki makalelere bakın:
- Hızlı Başlangıç: Azure VM'yi SQL Yönetilen Örneği bağlanacak şekilde yapılandırma
- Hızlı Başlangıç: Şirket içinden SQL Yönetilen Örneği için noktadan siteye bağlantı yapılandırma
SQL Server Management Studio (SSMS) kullanarak SQL oturum açma bilgileriyle veya Microsoft Entra yöneticisiyle
sysadmin
yönetilen örneğine bağlanın.Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Sorgu penceresinde aşağıdaki söz dizimini kullanarak yerel bir Microsoft Entra hesabı için oturum açma bilgileri oluşturun:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
Bu örnek, hesabı nativeuser@aadsqlmi.onmicrosoft.comiçin bir oturum açma bilgisi oluşturur.
USE master GO CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER GO
Oturum açma bilgilerini oluşturmak için araç çubuğunda Yürüt'e tıklayın.
Aşağıdaki T-SQL komutunu yürüterek yeni eklenen oturum açma bilgilerini denetleyin:
SELECT * FROM sys.server_principals; GO
Daha fazla bilgi için bkz . CREATE LOGIN.
Oturum açma bilgileri oluşturma izinleri verme
Diğer Microsoft Entra oturum açma bilgilerini oluşturmak için mevcut oturum açma bilgilerinin uygun izinlere sahip olması veya uygun sunucu rollerinin parçası olması gerekir.
SQL kimlik doğrulaması oturum açma işlemleri
- Oturum açma, SQL kimlik doğrulaması tabanlı bir sunucu sorumlusuysa, Microsoft Entra hesapları için oturum açma bilgileri oluşturmak için rolüne atanması
sysadmin
gerekir.
Microsoft Entra kimlik doğrulaması oturum açma bilgileri
- Oturum açma bilgisi bir Microsoft Entra sunucu sorumlusuysa, diğer Microsoft Entra kullanıcıları, grupları ve uygulamaları için oturum açma bilgileri oluşturmak için veya
securityadmin
sunucu rolü atanmalıdırsysadmin
. - En azından, diğer Microsoft Entra oturum açma bilgilerini oluşturmak için ALTER ANY LOGIN izni verilmelidir.
- Varsayılan olarak, içinde
master
yeni oluşturulan Microsoft Entra oturum açma işlemlerine verilen standart izinler şunlardır: CONNECT SQL ve ANY DATABASE. - Sunucu
sysadmin
rolü, yönetilen bir örnekteki birçok Microsoft Entra oturum açma bilgilerine verilebilir.
Oturum açma bilgilerini sunucu rolüne sysadmin
eklemek için:
Yönetilen örnekte yeniden oturum açın veya Microsoft Entra yöneticisiyle veya sql sorumlusuyla
sysadmin
var olan bağlantıyı kullanın.Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Aşağıdaki T-SQL söz dizimini
sysadmin
kullanarak Microsoft Entra oturum açma sunucusu rolünü verin:ALTER SERVER ROLE sysadmin ADD MEMBER login_name GO
Aşağıdaki örnek, sunucu rolüne oturum açma izni verir
sysadmin
nativeuser@aadsqlmi.onmicrosoft.comALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
SSMS kullanarak ek Microsoft Entra oturum açma bilgileri oluşturma
Microsoft Entra oturum açma bilgileri oluşturulduktan ve ayrıcalıklar verildikten sysadmin
sonra, bu oturum açma işlemi CREATE LOGIN ile FROM EXTERNAL PROVIDER yan tümcesini kullanarak ek oturum açma işlemleri oluşturabilir.
SQL Server Management Studio'da (SSMS) Sunucuya Bağlan'ı seçerek Microsoft Entra oturum açma bilgileriyle yönetilen örneğe bağlanın.
- Sunucu adı alanına SQL Yönetilen Örneği ana bilgisayar adınızı girin.
- Çok faktörlü kimlik doğrulaması oturum açma penceresi açmak için Kimlik Doğrulaması için Active Directory - MFA desteğiyle Evrensel'i seçin. Oturum açma. Daha fazla bilgi için bkz. Evrensel Kimlik Doğrulaması (çok faktörlü kimlik doğrulaması için SSMS desteği).
Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Sorgu penceresinde, aşağıdaki söz dizimini kullanarak başka bir Microsoft Entra hesabı için oturum açma bilgisi oluşturun:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GO
Bu örnek, etki alanı aadsqlmi.net Microsoft Entra aadsqlmi.onmicrosoft.com etki alanıyla federasyon olan Microsoft Entra kullanıcısı bob@aadsqlmi.netiçin bir oturum açma bilgisi oluşturur.
Aşağıdaki T-SQL komutunu yürütür. Federasyon Microsoft Entra hesapları, şirket içi Windows oturum açma bilgileri ve kullanıcıları için SQL Yönetilen Örneği değişimleridir.
USE master GO CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER GO
CREATE DATABASE söz dizimini kullanarak yönetilen örnekte bir veritabanı oluşturun. Bu veritabanı, sonraki bölümde kullanıcı oturum açma bilgilerini test etmek için kullanılacaktır.
Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Sorgu penceresinde, MyMITestDB adlı bir veritabanı oluşturmak için aşağıdaki söz dizimini kullanın.
CREATE DATABASE MyMITestDB; GO
Microsoft Entra Id'de bir grup için SQL Yönetilen Örneği oturum açma bilgileri oluşturun. SQL Yönetilen Örneği oturum açma bilgilerini eklemeden önce grubun Microsoft Entra Id içinde bulunması gerekir. Bkz . Microsoft Entra Id kullanarak temel grup oluşturma ve üye ekleme. Bir grup mygroup oluşturun ve bu gruba üye ekleyin.
SQL Server Management Studio'da yeni bir sorgu penceresi açın.
Bu örnekte, Microsoft Entra Id içinde mygroup adlı bir grup olduğu varsayılır. Şu kodu yürütün:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GO
Test olarak, yeni oluşturulan oturum açma bilgileri veya grupla yönetilen örnekte oturum açın. Yönetilen örneğe yeni bir bağlantı açın ve kimlik doğrulaması yaparken yeni oturum açma bilgilerini kullanın.
Nesne Gezgini'da sunucuya sağ tıklayın ve yeni bağlantı için Yeni Sorgu'yu seçin.
Aşağıdaki komutu yürüterek yeni oluşturulan Microsoft Entra oturum açma bilgileri için sunucu izinlerini denetleyin:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Azure SQL'in kullanıcı ve oturum açma bilgileri olarak Microsoft Entra sorumlularını desteklemesi, iç ve dış konuk kullanıcıları Microsoft Entra Dış Kimlik genişletir. Hem bireysel hem de grubun bir parçası olan konuk kullanıcılar, Azure SQL'deki diğer Microsoft Entra kullanıcılarınınkiyle aynı şekilde kullanılabilir. Konuk kullanıcıların diğer Microsoft Entra sunucusu oturum açma bilgilerini veya veritabanı kullanıcılarını oluşturabilmesini istiyorsanız, Microsoft Entra dizinindeki diğer kimlikleri okuma izinlerine sahip olmaları gerekir. Bu izin dizin düzeyinde yapılandırılır. Daha fazla bilgi için bkz . Microsoft Entra Id'de konuk erişim izinleri.
Microsoft Entra oturumundan Microsoft Entra kullanıcısı oluşturma
Tek veritabanlarına yetkilendirme, SQL Server'daki veritabanlarıyla SQL Yönetilen Örneği aynı şekilde çalışır. Bu veritabanı için izin verilen veya veritabanı rolüne eklenen bir veritabanındaki mevcut oturum açma bilgisinden kullanıcı oluşturabilirsiniz.
MyMITestDB adlı bir veritabanı ve yalnızca varsayılan izinlere sahip bir oturum açma hesabı oluşturduğumuza göre, sonraki adım bu oturumdan bir kullanıcı oluşturmaktır. Şu anda oturum açma bilgileri yönetilen örneğe bağlanabilir ve tüm veritabanlarını görebilir ancak veritabanlarıyla etkileşim kuramaz. Varsayılan izinlere sahip Microsoft Entra hesabıyla oturum açar ve yeni oluşturulan veritabanını genişletmeyi denerseniz aşağıdaki hatayı görürsünüz:
Veritabanı izinleri verme hakkında daha fazla bilgi için bkz . Veritabanı Altyapısı İzinlerini Kullanmaya Başlama.
Microsoft Entra kullanıcısı oluşturma ve örnek tablo oluşturma
Not
Bir kullanıcı bir Microsoft Entra grubunun parçası olarak oturum açtığında bazı sınırlamalar vardır.
Örneğin, SUSER_SID
verilen Microsoft Entra kullanıcısı tablonun bir parçası sys.server_principals
olmadığından çağrısı döndürürNULL
.
Bu nedenle, bu durumda belirli saklı yordamlara veya verilen izinler listesine erişim sınırlı olabilir.
SQL Server Management Studio kullanarak bir
sysadmin
hesap kullanarak yönetilen örneğinizde oturum açın.Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Sorgu penceresinde, Microsoft Entra oturum açma bilgisinden kullanıcı oluşturmak için aşağıdaki söz dizimini kullanın:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GO
Aşağıdaki örnek, oturum açma bob@aadsqlmi.netişleminden bir kullanıcı bob@aadsqlmi.net oluşturur:
USE MyMITestDB GO CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net] GO
Ayrıca, grup olan bir Microsoft Entra oturumundan Bir Microsoft Entra kullanıcısı oluşturmak da desteklenir.
Aşağıdaki örnek, Microsoft Entra kiracınızda bulunan mygroup Adlı Microsoft Entra grubu için bir oturum açma bilgisi oluşturur.
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO
mygroup'a ait tüm kullanıcılar MyMITestDB veritabanına erişebilir.
Önemli
Microsoft Entra oturum açma bilgisinden kullanıcı oluştururken, login'den aynı login_name user_name belirtin.
Daha fazla bilgi için bkz . CREATE USER.
Yeni sorgu penceresinde aşağıdaki T-SQL komutunu kullanarak bir test tablosu oluşturun:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );
SSMS'de oluşturulan kullanıcıyla bir bağlantı oluşturun. Daha önce tarafından
sysadmin
oluşturulan TestTable tablosunu göremediğini fark edeceksiniz. Kullanıcıya veritabanından veri okuma izinleri sağlamamız gerekir.Aşağıdaki komutu yürüterek kullanıcının geçerli iznini de kontrol edebilirsiniz:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Veritabanı düzeyindeki rollere kullanıcı ekleme
Kullanıcının veritabanındaki verileri görmesi için kullanıcıya veritabanı düzeyinde roller sağlayabiliriz.
SQL Server Management Studio kullanarak bir
sysadmin
hesap kullanarak yönetilen örneğinizde oturum açın.Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Aşağıdaki T-SQL söz dizimini
db_datareader
kullanarak Microsoft Entra kullanıcısının veritabanı rolünü verin:Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GO
Aşağıdaki örnek, kullanıcıya bob@aadsqlmi.net ve mygroup
db_datareader
grubuna MyMITestDB veritabanında izinler sağlar:USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GO
Aşağıdaki komutu yürüterek veritabanında oluşturulan Microsoft Entra kullanıcısının mevcut olup olmadığını denetleyin:
SELECT * FROM sys.database_principals GO
Role eklenmiş
db_datareader
kullanıcıyla yönetilen örneğe yeni bir bağlantı oluşturun.Tabloyu görmek için Nesne Gezgini'deki veritabanını genişletin.
Yeni bir sorgu penceresi açın ve aşağıdaki SELECT deyimini yürütür:
SELECT * FROM TestTable
Tablodaki verileri görebiliyor musunuz? Döndürülen sütunları görmeniz gerekir.
Microsoft Entra oturum açma bilgilerini taklit edin
SQL Yönetilen Örneği, Microsoft Entra oturum açma bilgilerinin kimliğe bürünülme özelliğini destekler.
Kimliğe bürünme testi
SQL Server Management Studio kullanarak bir
sysadmin
hesap kullanarak yönetilen örneğinizde oturum açın.Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Sorgu penceresinde, yeni bir saklı yordam oluşturmak için aşağıdaki komutu kullanın:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GO
Saklı yordamı yürütürken kimliğine büründüğünüz kullanıcının olduğunu bob@aadsqlmi.netgörmek için aşağıdaki komutu kullanın.
Exec dbo.usp_Demo
EXECUTE AS LOGIN deyimini kullanarak kimliğe bürünme test edin:
EXECUTE AS LOGIN = 'bob@aadsqlmi.net' GO SELECT SUSER_SNAME() REVERT GO
Not
Yalnızca rolün parçası sysadmin
olan SQL sunucu düzeyinde oturum açma işlemleri, Microsoft Entra sorumlularını hedefleyen aşağıdaki işlemleri yürütebilir:
- KULLANICI OLARAK YÜRÜT
- OTURUM AÇMA OLARAK YÜRÜT
Veritabanları arası sorguları kullanma
Microsoft Entra oturum açma bilgilerine sahip Microsoft Entra hesapları için veritabanları arası sorgular desteklenir. Microsoft Entra grubuyla veritabanları arası sorguyu test etmek için başka bir veritabanı ve tablo oluşturmamız gerekir. Zaten varsa başka bir veritabanı ve tablo oluşturmayı atlayabilirsiniz.
SQL Server Management Studio kullanarak bir
sysadmin
hesap kullanarak yönetilen örneğinizde oturum açın.Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.
Sorgu penceresinde aşağıdaki komutu kullanarak MyMITestDB2 adlı bir veritabanı ve TestTable2 adlı bir tablo oluşturun:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );
Yeni sorgu penceresinde aşağıdaki komutu yürüterek mygroup kullanıcısını yeni MyMITestDB2 veritabanında oluşturun ve bu veritabanında mygroup için SELECT izinleri verin:
USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GO
SQL Server Management Studio'yu kullanarak yönetilen örnekte Microsoft Entra grubu mygroup'un bir üyesi olarak oturum açın. Yeni bir sorgu penceresi açın ve veritabanları arası SELECT deyimini yürütür:
USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GO
TestTable2'den tablo sonuçlarını görmeniz gerekir.
Desteklenen diğer senaryolar
- SQL Aracısı yönetimi ve iş yürütmeleri Microsoft Entra oturum açma işlemleri için desteklenir.
- Veritabanı yedekleme ve geri yükleme işlemleri Microsoft Entra oturum açma bilgileri tarafından yürütülebilir.
- Microsoft Entra oturum açma bilgileri ve kimlik doğrulama olaylarıyla ilgili tüm deyimlerin denetimi.
- Sunucu rolünün
sysadmin
üyesi olan Microsoft Entra oturum açma bilgileri için ayrılmış yönetici bağlantısı. - Microsoft Entra oturum açma bilgileri, sqlcmd yardımcı programı ve SQL Server Management Studio aracı kullanılarak desteklenir.
- Oturum açma tetikleyicileri, Microsoft Entra oturum açma bilgilerinden gelen oturum açma olayları için desteklenir.
- Hizmet Aracısı ve VERITABANı postası, Microsoft Entra oturum açma bilgileri kullanılarak ayarlanabilir.
Sonraki adımlar
Güvenlik özelliklerini etkinleştirme
Veritabanınızın güvenliğini sağlamanın kapsamlı bir listesi için SQL Yönetilen Örneği güvenlik özellikleri makalesine bakın. Aşağıdaki güvenlik özellikleri ele alınıyor:
- SQL Yönetilen Örneği denetimi
- Always Encrypted
- Tehdit algılama
- Dinamik veri maskeleme
- Satır düzeyi güvenlik
- Saydam veri şifrelemesi (TDE)
SQL Yönetilen Örneği özellikleri
SQL Yönetilen Örneği özelliklerine tam bir genel bakış için bkz: