Azure Synapse Analytics'te SQL Kimlik Doğrulaması
Azure Synapse Analytics'in kaynak tüketiminizi denetlemenizi sağlayan iki SQL form faktörü vardır. Bu makalede, iki form faktörlerinin kullanıcı kimlik doğrulamasını nasıl denetleyacağı açıklanmaktadır.
Synapse SQL'e yetkilendirmek için iki yetkilendirme türü kullanabilirsiniz:
- Microsoft Entra yetkilendirmesi
- SQL yetkilendirmesi
SQL yetkilendirmesi, eski uygulamaların Azure Synapse SQL'e tanıdık bir şekilde bağlanmasını sağlar. Ancak Microsoft Entra kimlik doğrulaması, SQL havuzları gibi Azure Synapse kaynaklarına erişimi merkezi olarak yönetmenizi sağlar. Azure Synapse Analytics, çalışma alanı oluşturma sırasında ve sonrasında SQL kimlik doğrulaması gibi yerel kimlik doğrulamasını devre dışı bırakmayı destekler. Devre dışı bırakıldıktan sonra, yerel kimlik doğrulaması yetkili kullanıcılar tarafından herhangi bir zamanda etkinleştirilebilir. Microsoft Entra-only kimlik doğrulaması hakkında daha fazla bilgi için bkz . Azure Synapse Analytics'te yerel kimlik doğrulamasını devre dışı bırakma.
Yönetici istrative hesapları
Yönetici işlevi gösteren iki yönetim hesabı (SQL yöneticisi kullanıcı adı ve SQL Active Directory yöneticisi) vardır. SQL havuzlarınızın bu yönetici hesaplarını tanımlamak için Azure portalını açın ve Synapse çalışma alanınızın Özellikler sekmesine gidin.
SQL yöneticisi kullanıcı adı
Azure Synapse Analytics oluşturduğunuzda, sunucu yöneticisi oturum açma bilgilerini adlandırmanız gerekir. SQL server bu hesabı veritabanında oturum açma olarak
master
oluşturur. Bu hesap SQL Server kimlik doğrulaması (kullanıcı adı ve parola) kullanarak bağlanır. Bu hesaplardan yalnızca biri mevcut olabilir.SQL Active Directory yöneticisi
Bireysel veya güvenlik grubu hesabı olan bir Microsoft Entra hesabı da yönetici olarak yapılandırılabilir. Bir Microsoft Entra yöneticisi yapılandırmak isteğe bağlıdır, ancak Synapse SQL'e bağlanmak için Microsoft Entra hesaplarını kullanmak istiyorsanız bir Microsoft Entra yöneticisinin yapılandırılması gerekir .
- Microsoft Entra yönetici hesabı ayrılmış SQL havuzlarına erişimi denetlerken Synapse RBAC rolleri sunucusuz havuzlara erişimi denetlemek için kullanılabilir; örneğin Synapse Yönetici istrator ve Synapse SQL Yönetici istrator rolüyle.
SQL yöneticisi kullanıcı adı ve SQL Active Directory yönetici hesapları aşağıdaki özelliklere sahiptir:
- Sunucudaki herhangi bir SQL Veritabanı otomatik olarak bağlanabilen tek hesaplardır. (Diğer hesapların, bir kullanıcı veritabanına bağlanabilmek için veritabanının sahibi olmaları veya kullanıcı veritabanında kullanıcı hesabına sahip olmaları gerekir.)
- Bu hesaplar kullanıcı veritabanlarına
dbo
kullanıcısı olarak girer ve kullanıcı veritabanlarında tüm izinlere sahip olur. (Kullanıcı veritabanının sahibi de veritabanınadbo
kullanıcısı olarak girer.) - Veritabanına kullanıcı olarak girmeyin
master
dbo
ve veritabanında sınırlı izinleremaster
sahip olun. - SQL Veritabanı'de bulunmayan standart SQL Server
sysadmin
sabit sunucu rolünün üyesi değildir. - Veritabanlarını, oturum açma bilgilerini, veritabanındaki
master
kullanıcıları ve sunucu düzeyinde IP güvenlik duvarı kurallarını oluşturabilir, değiştirebilir ve bırakabilir. - ve
loginmanager
rollerinedbmanager
üye ekleyebilir ve kaldırabilir. - Sistem tablosunu görüntüleyebilir
sys.sql_logins
.
Dekont
Bir kullanıcı Active Directory yöneticisi ve Synapse Yönetici istrator olarak yapılandırıldıysa ve Active Directory yönetici rolünden kaldırıldıysa, kullanıcı Synapse'deki ayrılmış SQL havuzlarına erişimi kaybeder. Ayrılmış SQL havuzlarına yeniden erişim kazanmak için bunların kaldırılması ve synapse Yönetici istrator rolüne eklenmesi gerekir.
Sunucusuz SQL havuzuna erişimi olan kullanıcıları yönetmek için aşağıdaki yönergeleri kullanabilirsiniz.
Sunucusuz SQL havuzunda oturum açmak için aşağıdaki söz dizimini kullanın:
CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
-- or
CREATE LOGIN [Mary@domainname.net] FROM EXTERNAL PROVIDER;
Oturum açma bilgileri mevcut olduğunda sunucusuz SQL havuzu uç noktası içindeki tek tek veritabanlarında kullanıcılar oluşturabilir ve bu kullanıcılara gerekli izinleri verilmektedir. Kullanıcı oluşturmak için aşağıdaki söz dizimini kullanabilirsiniz:
CREATE USER Mary FROM LOGIN Mary;
-- or
CREATE USER Mary FROM LOGIN Mary@domainname.net;
-- or
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
Oturum açma ve kullanıcı oluşturulduktan sonra, hak vermek için normal SQL Server söz dizimini kullanabilirsiniz.
Yönetici olmayan kullanıcılar
Genel olarak, yönetici olmayan hesapların veritabanına erişmesi master
gerekmez. CREATE USER (Transact-SQL) deyimini kullanarak veritabanı düzeyinde bağımsız veritabanı kullanıcıları oluşturun.
Kullanıcı, Microsoft Entra kimlik doğrulaması içeren veritabanı kullanıcısı (ortamınızı Microsoft Entra kimlik doğrulaması için yapılandırdıysanız) veya SQL Server kimlik doğrulaması içeren bir veritabanı kullanıcısı veya SQL Server kimlik doğrulaması oturum açma bilgilerini temel alan bir SQL Server kimlik doğrulaması kullanıcısı (önceki adımda oluşturulmuştur) olabilir.
Kullanıcı oluşturmak için veritabanına bağlanın ve aşağıdaki örneklere benzer deyimleri çalıştırın:
CREATE USER Mary FROM LOGIN Mary;
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
Başlangıçta veritabanı yöneticilerinden yalnızca biri veya veritabanının sahibi kullanıcı oluşturabilir. Daha fazla kullanıcıya yeni kullanıcı oluşturma yetkisi vermek için şunun gibi bir deyim kullanarak ALTER ANY USER
izni verin:
GRANT ALTER ANY USER TO Mary;
Ek kullanıcılara veritabanı hakkında tam denetim vermek için, onları db_owner sabit veritabanı rolünün bir üyesi yapın.
Azure SQL Veritabanı veya synapse sunucusuz içinde deyimini ALTER ROLE
kullanın.
ALTER ROLE db_owner ADD MEMBER Mary;
Ayrılmış SQL havuzunda EXEC sp_addrolemember kullanın.
EXEC sp_addrolemember 'db_owner', 'Mary';
Dekont
Sunucu oturum açma bilgilerini temel alan bir veritabanı kullanıcısı oluşturmanın yaygın nedenlerinden biri, birden çok veritabanına erişmesi gereken kullanıcılardır. Bağımsız veritabanı kullanıcıları tek tek varlıklar olduğundan, her veritabanı kendi kullanıcısını ve kendi parolasını korur. Bu, kullanıcının her veritabanı için her parolayı hatırlaması gerektiğinden ek yüke neden olabilir ve birçok veritabanı için birden çok parolayı değiştirmek zorundayken istenmeyen duruma gelebilir.
Gruplar ve roller
Verimli erişim yönetimi için bireysel kullanıcılar yerine gruplara ve rollere atanan izinler kullanılır.
Microsoft Entra kimlik doğrulamayı kullanırken, Microsoft Entra kullanıcılarını bir Microsoft Entra grubuna yerleştirin. Grup için bir bağımsız veritabanı kullanıcısı oluşturun. Bir veya daha fazla veritabanı kullanıcılarını bir veritabanı rolüne ekleyin ve izinleri veritabanı rolüne atayın.
SQL Server kimlik doğrulamasını kullanırken veritabanında bağımsız veritabanı kullanıcılarını oluşturun. Bir veya daha fazla veritabanı kullanıcılarını bir veritabanı rolüne ekleyin ve izinleri veritabanı rolüne atayın.
Veritabanı rolleri db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter ve db_denydatareader gibi yerleşik roller olabilir. Birkaç kullanıcıya tam izin vermek için genelde db_owner kullanılır. Diğer sabit veritabanı rolleri, geliştirme aşamasında basit bir veritabanını hızlı bir şekilde kullanıma almak için kullanışlıdır ancak çoğu üretim veritabanı için önerilmez.
Örneğin db_datareader sabit veritabanı rolü, veritabanındaki tüm tablolara okuma izni verir ve bu durum genelde ihtiyaç duyulandan fazlasıdır.
Create ROLE deyimini kullanarak kendi kullanıcı tanımlı veritabanı rollerinizi oluşturmak ve her role iş gereksinimi için gereken en düşük izinleri dikkatli bir şekilde vermek çok daha iyidir. Birden fazla rolün üyesi olan kullanıcılar, tüm rollerin izinlerine sahip olur.
İzinler
SQL Veritabanında ayrı ayrı verilebilen veya reddedilebilen 100'den fazla izin vardır. Bu izinlerin çoğu iç içe geçmiş haldedir. Örneğin, bir şemada için verilen UPDATE
izni, o şema içindeki tüm tablolar için UPDATE
iznini de içerir. Çoğu izin sisteminde olduğu gibi bir iznin reddedilmesi, aynı iznin verilme durumunu geçersiz kılar.
İç içe geçmiş yapısı ve izin sayısı nedeniyle, veritabanınızı doğru şekilde korumak için uygun bir izin sistemi tasarlamak uzun ve dikkatli bir çalışma gerektirebilir.
İzinler (Veritabanı Altyapısı) bölümündeki izin listesiyle başlayın ve veritabanı altyapısı izinlerinin poster boyutu grafiğini gözden geçirin.
Dikkat edilmesi gerekenler ve kısıtlamalar
SQL Veritabanı oturum açma bilgilerini ve kullanıcıları yönetirken aşağıdaki noktaları göz önünde bulundurun:
- Deyimleri yürütürken
CREATE/ALTER/DROP DATABASE
veritabanına bağlımaster
olmanız gerekir. - Sunucu yöneticisi oturum açma bilgilerine karşılık gelen veritabanı kullanıcısı değiştirilemez veya bırakılamaz.
- Microsoft Entra-only kimlik doğrulaması etkinleştirilirse sunucu yöneticisi devre dışı bırakılır.
- Sunucu yöneticisi oturum açma bilgilerinin varsayılan dili ABD-İngilizce olarak belirlenmiştir.
- Yalnızca yöneticiler (Sunucu yöneticisi oturum açma bilgileri veya Microsoft Entra yöneticisi) ve veritabanındaki dbmanager veritabanı rolünün
master
üyeleri veDROP DATABASE
deyimlerini yürütmeCREATE DATABASE
iznine sahiptir. - Deyimleri yürütürken
CREATE/ALTER/DROP LOGIN
veritabanına bağlımaster
olmanız gerekir. Ancak oturum açma bilgilerini kullanmak önerilmez. Bunun yerine bağımsız veritabanı kullanıcılarını kullanmanız önerilir. Daha fazla bilgi için bkz. Bağımsız Veritabanı Kullanıcıları - Veritabanınızı Taşınabilir Hale Getirme. - Bir kullanıcı veritabanına bağlanmak için bağlantı dizesinde veritabanının adını belirtmeniz gerekir.
- Yalnızca sunucu düzeyinde asıl oturum açma bilgileri ve veritabanındaki loginmanager veritabanı rolünün
master
üyeleri ,ALTER LOGIN
veDROP LOGIN
deyimlerini yürütmeCREATE LOGIN
iznine sahiptir. - ve deyimlerini bir ADO.NET uygulamasında yürütürken
CREATE/ALTER/DROP LOGIN
CREATE/ALTER/DROP DATABASE
parametreli komutların kullanılmasına izin verilmez. Daha fazla bilgi için bkz. Komutlar ve Parametreler. CREATE USER
deyiminiFOR/FROM LOGIN
seçeneğiyle yürütürken bunun bir Transact-SQL toplu işindeki tek deyim olması gerekir.ALTER USER
deyiminiWITH LOGIN
seçeneğiyle yürütürken bunun bir Transact-SQL toplu işindeki tek deyim olması gerekir.CREATE/ALTER/DROP LOGIN
veCREATE/ALTER/DROP USER
deyimleri, Azure Synapse çalışma alanı için Microsoft Entra-only kimlik doğrulaması etkinleştirildiğinde desteklenmez.- Bir kullanıcıda
CREATE/ALTER/DROP
işlemini gerçekleştirmek için veritabanındaALTER ANY USER
izni gerekir. - Veritabanı rolünün sahibi bu veritabanı rolüne başka bir veritabanı kullanıcısı eklemeye veya bu rolden başka bir veritabanı kullanıcısını kaldırmaya çalıştığında şu hata oluşabilir: Kullanıcı veya rol 'Ad' bu veritabanında yok. Kullanıcı sahibi tarafından görülemediğinden bu hata oluşur. Bu sorunu çözmek için rol sahibine kullanıcı için
VIEW DEFINITION
iznini verin.
Sonraki adımlar
Daha fazla bilgi için bkz. Bağımsız Veritabanı Kullanıcıları - Veritabanınızı Taşınabilir Hale Getirme.