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.
Uyarı
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Bu makalede, bağlantı dizesi kimlik bilgilerini sağlamak yerine yönetilen kimlik kullanarak Azure SQL Veritabanı için dizin oluşturucu bağlantısının nasıl ayarlanacağı açıklanmaktadır.
Sistem tarafından atanan yönetilen kimliği veya kullanıcı tarafından atanan yönetilen kimliği kullanabilirsiniz. Yönetilen kimlikler Microsoft Entra oturum açma bilgileridir ve Azure SQL'daki verilere erişmek için Azure rol atamaları gerektirir.
Önkoşullar
Arama hizmetiniz için yönetilen bir kimlik oluşturun.
SQL üzerinde Azure yönetici rolü atayın. Dizin oluşturucu bağlantısında kullanılan kimliğin okuma izinlerine sahip olması gerekir. Veritabanında okuma izinleri vermek için bir SQL Veritabanı veya SQL Yönetilen Örnek üzerinde sunucusu olan bir Microsoft Entra yöneticisi olmanız gerekir.
Dizin oluşturucu kavramları ve yapılandırması hakkında bilgi sahibi olmanız gerekir.
1 - Veritabanını okumak için izinler atama
Veritabanını okumak için arama hizmetini veya kullanıcı tarafından atanan yönetilen kimlik iznini atamak için aşağıdaki adımları izleyin.
Visual Studio bağlanın.
Microsoft Entra hesabınızla kimlik doğrulaması.
Aşağıdaki komutları yürütebilirsiniz:
Arama hizmeti adınızın veya kullanıcı tarafından atanan yönetilen kimlik adının çevresine köşeli ayraçları ekleyin.
CREATE USER [insert your search service name here or user-assigned managed identity name] FROM EXTERNAL PROVIDER; EXEC sp_addrolemember 'db_datareader', [insert your search service name here or user-assigned managed identity name];
İzinleri atadıktan sonra arama hizmeti kimliğini veya kullanıcı tarafından atanan kimliği daha sonra değiştirirseniz rol üyeliğini kaldırmanız ve KULLANıCıYı SQL veritabanından kaldırmanız ve ardından izin atamasını yinelemeniz gerekir. Rol üyeliğini ve kullanıcıyı kaldırma işlemi aşağıdaki komutlar çalıştırılarak gerçekleştirilebilir:
sp_droprolemember 'db_datareader', [insert your search service name or user-assigned managed identity name];
DROP USER IF EXISTS [insert your search service name or user-assigned managed identity name];
2 - Rol ataması ekleme
Bu bölümde, Azure Yapay Zeka Arama hizmetinize SQL Server verileri okuma izni vereceksiniz. Ayrıntılı adımlar için bkz. Azure portalını kullanarak Azure rolleri atama.
Azure portalında Azure SQL Server sayfanıza gidin.
Erişim denetimi (IAM) öğesini seçin.
Rol ataması ekle'yi >seçin.
Rol sekmesinde uygun Okuyucu rolünü seçin.
Üyeler sekmesinde Yönetilen kimlik'i ve ardından Üye seç'i seçin.
Azure aboneliğinizi seçin.
Sistem tarafından atanan bir yönetilen kimlik kullanıyorsanız Sistem tarafından atanan yönetilen kimlik'i seçin, arama hizmetinizi arayın ve ardından seçin.
Aksi takdirde, kullanıcı tarafından atanan bir yönetilen kimlik kullanıyorsanız Kullanıcı tarafından atanan yönetilen kimlik'i seçin, kullanıcı tarafından atanan yönetilen kimliğin adını arayın ve seçin.
Gözden geçir + ata sekmesinde, rolü atamak için Gözden geçir + ata seçeneğini seçin.
3 - Veri kaynağını oluşturma
Veri kaynağını oluşturun ve sistem tarafından atanan yönetilen kimlik veya kullanıcı tarafından atanan yönetilen kimlik sağlayın.
Sistem tarafından atanan yönetilen kimlik
REST API, Azure portalı ve Azure SDK’ları sistem tarafından atanan yönetilen kimliği destekler.
Sistem tarafından atanan yönetilen kimlikle bağlanırken, veri kaynağı tanımında yapılan tek değişiklik "kimlik bilgileri" özelliğinin biçimidir. Başlangıç Kataloğu veya Veritabanı adı ile kullanıcı anahtarı veya parolası olmayan bir KaynakId sağlayacaksınız. ResourceId, Azure SQL Veritabanı abonelik kimliğini, SQL Veritabanı kaynak grubunu ve SQL veritabanının adını içermelidir.
Aşağıda, Veri Kaynağı Oluştur REST API'si ve yönetilen kimlik bağlantı dizesi kullanarak depolama hesabından verileri dizine almak için veri kaynağı oluşturma örneği verilmiştir. Yönetilen kimlik bağlantı dizesi biçimi REST API, .NET SDK ve Azure portalı için aynıdır.
POST https://[service name].search.windows.net/datasources?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "sql-datasource",
"type" : "azuresql",
"credentials" : {
"connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Sql/servers/[SQL Server name];Connection Timeout=30;"
},
"container" : {
"name" : "my-table"
}
}
Kullanıcı tarafından atanan yönetilen kimlik
REST API sürüm 2026-04-01 ve üzeri, kullanıcı tarafından atanan yönetilen kimliğe dayalı bağlantıları destekler. Kullanıcı tarafından atanan bir yönetilen kimlikle bağlanırken, veri kaynağı tanımında iki değişiklik vardır:
İlk olarak, "kimlik bilgileri" özelliğinin biçimi bir İlk Katalog veya Veritabanı adı ve hesap anahtarı veya parolası olmayan bir ResourceId'dir. ResourceId, Azure SQL Veritabanı abonelik kimliğini, SQL Veritabanı kaynak grubunu ve SQL veritabanının adını içermelidir. Bu, sistem tarafından atanan yönetilen kimlikle aynı biçimdir.
İkincisi, kullanıcı tarafından atanan yönetilen kimliklerin koleksiyonunu içeren bir "identity" özelliği ekleyin. Veri kaynağı oluşturulurken yalnızca bir kullanıcı tarafından atanan yönetilen kimlik sağlanmalıdır. Türünü "userAssignedIdentities" olarak ayarlayın.
Veri Kaynakları - Oluştur veya Güncelleştir'i kullanarak dizin oluşturucu veri kaynağı nesnesi oluşturma örneği aşağıda verilmiştir:
POST https://[service name].search.windows.net/datasources?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "sql-datasource",
"type" : "azuresql",
"credentials" : {
"connectionString" : "Database=[SQL database name];ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Sql/servers/[SQL Server name];Connection Timeout=30;"
},
"container" : {
"name" : "my-table"
},
"identity" : {
"@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
"userAssignedIdentity" : "/subscriptions/[subscription ID]/resourcegroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]"
}
}
4 - Dizini oluşturma
Dizin, bir belgedeki alanları, öznitelikleri ve arama deneyimini şekillendiren diğer yapıları belirtir.
İşte aranabilir bir alan içeren bir booktitle çağrısı:
POST https://[service name].search.windows.net/indexes?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "my-target-index",
"fields": [
{ "name": "id", "type": "Edm.String", "key": true, "searchable": false },
{ "name": "booktitle", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
]
}
5 - Dizin oluşturucu oluşturma
Dizin oluşturucu bir veri kaynağını hedef arama dizinine bağlar ve veri yenilemeyi otomatikleştirmek için bir zamanlama sağlar. Dizin ve veri kaynağı oluşturulduktan sonra dizin oluşturucuyu oluşturmaya hazır olursunuz. Dizin oluşturucu başarılı olursa, bağlantı söz dizimi ve rol atamaları geçerli olur.
Azure SQL dizin oluşturucu tanımıyla bir Create Indexer REST API çağrısı. dizin oluşturucu, isteği gönderdiğinizde çalışır.
POST https://[service name].search.windows.net/indexers?api-version=2026-04-01
Content-Type: application/json
api-key: [admin key]
{
"name" : "sql-indexer",
"dataSourceName" : "sql-datasource",
"targetIndexName" : "my-target-index"
}
Dizin oluşturucu, istemcinin sunucuya erişmesine izin verilmediğini belirten veri kaynağına bağlanmaya çalıştığında bir hata alırsanız , sık karşılaşılan dizin oluşturucu hatalarına göz atın.