Aracılığıyla paylaş


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'de kimlik doğrulaması yapmak için iki seçenek kullanabilirsiniz:

  • Microsoft Entra doğrulaması
  • SQL kimlik doğrulaması

SQL kimlik doğrulaması, eski uygulamaların kullanıcı adı ve parolayla 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önetim hesapları

Yönetici olarak davranan iki yönetim hesabı (SQL yöneticisi kullanıcı adı ve Microsoft Entra 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 Server Yöneticileri

  • 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ı master veritabanında bir oturum açma olarak 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.

  • Microsoft Entra 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öneticisi ve Synapse SQL Yöneticisi rolüyle.

SQL yöneticisi kullanıcı adı ve Microsoft Entra 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ına dbo kullanıcısı olarak girer.)
  • master veritabanına dbo kullanıcısı olarak girmeyin ve master veritabanında sınırlı izinlere sahip olun.
  • Standart SQL Server sabit sunucu rolünün bir üyesi değildir ve bu rol SQL Veritabanı'nda sysadmin.
  • 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.
  • dbmanager ve loginmanager rollerine üye ekleyebilir ve üye kaldırabilir.
  • sys.sql_logins sistem tablosunu görüntüleyebilir.

Not: [bir not veya açıklama]

Bir kullanıcı Microsoft Entra yöneticisi ve Synapse Yöneticisi olarak yapılandırılır ve ardından Microsoft Entra yönetici rolünden kaldırılırsa, kullanıcı Synapse'teki 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öneticisi 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 verebilirsiniz. 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 Serverless üzerinde ALTER ROLE ifadesini kullanın.

ALTER ROLE db_owner ADD MEMBER Mary;

Ayrılmış SQL havuzunda EXEC sp_addrolemember kullanın.

EXEC sp_addrolemember 'db_owner', 'Mary';

Not

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 bir kullanıcı, tüm rollerin izinlerini birleştirir.

İ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:

  • İfadeleri yürütürken master veritabanına bağlı 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 CREATE DATABASE ve DROP DATABASE deyimlerini yürütme iznine sahiptir.
  • İfadeleri yürütürken master veritabanına bağlı olmanız gerekir. Ancak oturum açma bilgilerini kullanmak önerilmez. Bunun yerine içerilen veritabanı kullanıcılarını kullanın. 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üzeyindeki asıl oturum açma ve veritabanındaki master veritabanı rolünün üyeleri, CREATE LOGIN, ALTER LOGIN ve DROP LOGIN deyimlerini yürütme yetkisine sahiptir.
  • ADO.NET uygulamasında CREATE/ALTER/DROP LOGIN ve CREATE/ALTER/DROP DATABASE deyimlerini yürütürken, parametreli komutların kullanılmasına izin verilmez. Daha fazla bilgi için bkz. Komutlar ve Parametreler.
  • CREATE USER deyimini FOR/FROM LOGIN seçeneğiyle yürütürken bunun bir Transact-SQL toplu işindeki tek deyim olması gerekir.
  • ALTER USER deyimini WITH LOGIN seçeneğiyle yürütürken bunun bir Transact-SQL toplu işindeki tek deyim olması gerekir.
  • CREATE/ALTER/DROP LOGIN ve CREATE/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ında ALTER 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.

Daha fazla bilgi için bkz. Bağımsız Veritabanı Kullanıcıları - Veritabanınızı Taşınabilir Hale Getirme.