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.
data-source bölümünde veritabanı erişim ayrıntıları tanımlanmıştır. Ayrıca veritabanı seçeneklerini tanımlar.
Veri kaynağı ayarları
| Property | Description |
|---|---|
| veri kaynağı | Veritabanı bağlantı ayarlarını içeren nesne |
| data-source.database-type | Arka uçta kullanılan veritabanı: mssql, postgresql, mysql, , cosmosdb_nosql, cosmosdb_postgresql |
| data-source.connection-string | Seçili veritabanı türü için bağlantı dizesi |
| data-source.options | Veritabanına özgü özellikler (örneğin, SQL Server, Cosmos DB, vb.) |
| data-source.options.database | NoSQL için Azure Cosmos DB veritabanının adı (gerektiğinde database-type = cosmosdb_nosql) |
| data-source.options.container | NoSQL için Azure Cosmos DB kapsayıcısının adı (gerektiğinde database-type = cosmosdb_nosql) |
| data-source.options.schema | GraphQL şema dosyasının yolu (için database-type = cosmosdb_nosqlgereklidir) |
| data-source.options.set-session-context | JSON Web Belirteci (JWT) taleplerini oturum bağlamı olarak göndermeyi etkinleştirir (yalnızca SQL Server) |
| data-source.health | Veri kaynağı için sistem durumu denetimlerini yapılandıran nesne |
| data-source.health.enabled | Sistem durumu denetimi uç noktasını etkinleştirir |
| data-source.health.name | Sistem durumu raporunda kullanılan tanımlayıcı |
| data-source.health.threshold-ms | Sistem durumu denetimi sorgusu için milisaniye cinsinden en uzun süre |
| data-source.user-delegated-auth | AçıkBehalf-Of (OBO) kullanıcı temsilcisi kimlik doğrulamasını yapılandıran nesne (yalnızca mssql) |
| data-source.user-delegated-auth.enabled | OBO kimlik doğrulamasını etkinleştirir |
| data-source.user-delegated-auth.provider | OBO kimlik sağlayıcısı (şu anda EntraId yalnızca) |
| data-source.user-delegated-auth.database-audience | Aşağı akış SQL belirteci için hedef kitle |
Biçime genel bakış
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
// mssql only
"set-session-context": <true> (default) | <false>,
// cosmosdb_nosql only
"database": <string>,
"container": <string>,
"schema": <string>
},
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
},
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
},
"data-source-files": ["<string>"]
}
Veri kaynağı
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
data-source |
object | ✔️ Evet | - |
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Evet | None |
data-source |
connection-string |
string | ✔️ Evet | None |
data-source |
options |
object | ❌ Hayır | None |
Mülk değerleri
database-type |
Description | En Düşük Sürüm |
|---|---|---|
mssql |
Dokuda SQL | - |
mssql |
Azure SQL Veritabanı | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Doku Ambarı | - |
dwsql |
Doku SQL Analytics uç noktası | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
NoSQL için Azure Cosmos DB | - |
cosmosdb_postgresql |
PostgreSQL için Azure Cosmos DB | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Örnek: Azure SQL & SQL Server
"data-source": {
"database-type": "mssql",
"connection-string": "Server=tcp:myserver.database.windows.net,1433;Initial Catalog=MyDatabase;User ID=MyUser;Password=MyPassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
"options": {
"set-session-context": true
}
}
Note
Bu bağlantı dizeleri değişkenlerini destekleyen Azure SQL ve SQL Server için kullanırızSqlClient.
Tüketen SESSION_CONTEXT
Azure SQL ve SQL Server için, Veri API oluşturucusu SQL'in SESSION_CONTEXTtalep bilgilerini içerebilir.
CREATE PROC GetUser @userId INT AS
BEGIN
-- Use claims
IF SESSION_CONTEXT(N'user_role') = 'admin'
BEGIN
RAISERROR('Unauthorized access', 16, 1);
END
SELECT Id, Name, Age, IsAdmin
FROM Users
WHERE Id = @userId;
END;
Örnek: Azure Cosmos DB
"data-source": {
"database-type": "cosmosdb_nosql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"options": {
"database": "Your_CosmosDB_Database_Name",
"container": "Your_CosmosDB_Container_Name",
"schema": "Path_to_Your_GraphQL_Schema_File"
}
}
Note
Belirtilen "seçenekler" (database, containerve schema) Azure Cosmos DB'ye özeldir.
Ortam değişkenleri
Düz metin gizli dizilerini yapılandırma dosyanızın dışında tutmak için ortam değişkenlerini kullanın.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Bağlantı dayanıklılığı
Veri API oluşturucusu, geçici hatalardan sonra veritabanı isteklerini yeniden denemek için Üstel Geri Alma kullanır.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Yönetilen Hizmet Kimlikleri (MSI)
Yönetilen Hizmet Kimlikleri (MSI) kitaplıkta DefaultAzureCredential tanımlı olarak Azure.Identity desteklenir.
Azure SQL için Microsoft Entra'da Yönetilen kimlikler hakkında daha fazla bilgi edinin.
yönetilen kimlikleri (UAMI) User-Assigned
Kullanıcı Tarafından Atanan Yönetilen Kimlik için, Kimlik Doğrulaması ve Kullanıcı Kimliği özelliklerini bağlantı dizenize eklerken, Kullanıcı Tarafından Atanan Yönetilen Kimliğinizin istemci kimliğini yazın: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
System-Assigned Yönetilen Kimlik (SAMI)
Sistem Tarafından Atanan Yönetilen Kimlik için , Authentication özelliğini ekleyin ve UserId ve Password bağımsız değişkenlerini bağlantı dizenizin dışında tutun: Authentication=Active Directory Managed Identity;.
Sistem Durumu (Veri kaynağı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Veri API oluşturucusu, her biri kendi veri kaynağına sahip olan birden çok yapılandırma dosyasını destekler. Bu yapılandırma bloğu, her veri kaynağının kendi sistem durumu yapılandırmasına sahip olmasını sağlar.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
string | No | database-type |
data-source.health |
threshold-ms |
integer | No | 1000 |
Adı denetle
Birden çok yapılandırma dosyası aynı türdeki veri kaynaklarını işaret ettiğinden, bu veri kaynakları sistem durumu raporunda ayırt edilemez. Yalnızca sistem durumu raporunda kullanılan benzersiz, tanımlanabilir bir etiket atamak için kullanın name .
Davranışı denetleme
Veritabanı türüne özgü olabilecek en basit sorgu, bağlantının açıldığını doğrulamak için verilen veri kaynağında yürütülür. Bu sorgunun threshold-ms tamamlanması için kabul edilebilir en uzun süreyi (milisaniye olarak) yapılandırmak için özelliğini kullanın.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Kullanıcı tarafından atanan kimlik doğrulaması
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
object | No | – |
SQL Server ve Azure SQL içinBehalf-Of (OBO) kullanıcı tarafından atanan kimlik doğrulaması. Etkinleştirildiğinde, DAB gelen kullanıcı belirtecini aşağı akış SQL belirteci ile değiştirir, böylece veritabanı gerçek çağıran kullanıcı olarak kimlik doğrulaması yapar. Bu özellik yalnızca veri kaynakları için mssql desteklenir ve Entra Id kimlik doğrulaması yukarı akışı gerektirir.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | false |
data-source.user-delegated-auth |
provider |
sabit listesi (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
string | Evet (etkinleştirildiğinde) | None |
-
enabled—OBO'u açar veya kapatır. -
provider—belirteç değişimi için kimlik sağlayıcısı. Şu anda yalnızcaEntraIddesteklenmektedir. -
database-audience—aşağı akış SQL belirtecinin hedef kitlesi (örneğin,https://database.windows.net).
Gerekli ortam değişkenleri
OBO etkinleştirildiğinde, DAB belirteç değişimi için aşağıdaki ortam değişkenlerini okur:
| Variable | Description |
|---|---|
DAB_OBO_CLIENTID |
Entra Id uygulama kaydının uygulama (istemci) kimliği |
DAB_OBO_CLIENTSECRET |
Uygulama kaydı için gizli dizi |
DAB_OBO_TENANTID |
Entra Id kiracı kimliği |
Kullanıcı başına bağlantı havuzu
OBO etkinleştirildiğinde, DAB kullanıcı başına ayrı SQL bağlantı havuzları tutar, böylece bir kullanıcının erişim belirteci hiçbir zaman başka bir kullanıcının isteği için yeniden kullanılmaz.
Note
Kullanıcı başına bağlantı havuzu yalnızca OBO kimlik doğrulaması etkin olduğunda uygulanır. Standart dağıtımlar etkilenmez.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Example
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
}
}
Önemli
OBO yalnızca için mssqldesteklenir.
database-audience OBO etkinleştirildiğinde özelliği gereklidir. MsSQL olmayan bir veri kaynağında bu yapılandırmayı çalıştırmak doğrulamada başarısız oluyor.