AZ SQL Server hibaelhárítása

Megoldások az SQL Server gyakori csatlakozási, hitelesítési és entitáskonfigurációs problémáira a Data API Builderben.

Gyakori kérdések

Mi az SQL Server támogatása a DAB-ban?

A Data API Builder relációs adatbázis-háttérrendszerként támogatja a Microsoft SQL Servert és az Azure SQL-t. A DAB a Microsoft.Data.SqlClient illesztőprogram használatával csatlakozik, és REST- és GraphQL-kéréseket fordít T-SQL-lekérdezésekké. A helyszíni SQL Server-példányok és az Azure SQL-adatbázis egyaránt támogatott.

Milyen kapcsolati sztringformátumot használ az SQL Server?

A DAB az ADO.NET stílusú kapcsolati karakterláncokat használja az SQL Serverhez. Egy tipikus sztring így néz ki: Server=localhost,1433;Database=mydb;User Id=sa;Password=yourpassword;TrustServerCertificate=True;. Állítsa be a kapcsolati sztringet a data-source.connection-string mezőben, vagy adja át a --connection-string opcióval a dab init-ban/-ben.

Milyen hitelesítési módok támogatottak?

A DAB támogatja az SQL-hitelesítést (felhasználónév és jelszó), a Windows integrált hitelesítést és a Microsoft Entra-hitelesítést (korábban Azure Active Directory) az Azure SQL-hez. Az Entra-hitelesítés használatához állítsa be a Authentication=Active Directory Default vagy a Active Directory Managed Identity kapcsolati sztringben, és győződjön meg arról, hogy a kezelt identitás vagy szolgáltatási principal adatbázis-hozzáféréssel rendelkezik.

Gyakori problémák

Nem lehet csatlakozni az SQL Server-tárolóhoz

Tünet: A DAB nem indul el kapcsolati hibával, például A network-related or instance-specific error occurred.

Ok: Az SQL Server tárolóportja nincs megfelelően megfeleltetve, a gazdagép neve hibás, vagy a tároló még nem áll készen a kapcsolatok elfogadására.

Felbontás: Ellenőrizze, hogy a tároló fut-e a következővel docker ps: . Ellenőrizze a port-hozzárendelést (alapértelmezett 1433), és használja a localhost,1433 a kapcsolati karakterláncban. Adja hozzá TrustServerCertificate=True , ha önaláírt tanúsítványt használ. Ha a tároló most indult el, várjon néhány másodpercet, amíg az SQL Server inicializálja a DAB-t.

A felhasználó bejelentkezése sikertelen

Tünet: A DAB-naplók Login failed for user 'sa' vagy hasonló hitelesítési hibát mutatnak.

Okoz: A kapcsolati sztring felhasználóneve, jelszava vagy hitelesítési módja nem egyezik az SQL Server konfigurációval. Előfordulhat, hogy az SQL Server csak Windows-hitelesítés módban is fut.

Felbontás: Ellenőrizze, hogy a hitelesítő adatok egyeznek-e a tároló vagy kiszolgáló létrehozásakor beállított hitelesítő adatokkal. Tároló használata esetén ellenőrizze a környezeti változót SA_PASSWORD . Ha egy meglévő példányon szeretné engedélyezni az SQL-hitelesítést, állítsa a kiszolgáló hitelesítési módját SQL Server és Windows-hitelesítési módra az SQL Server Management Studióban a Kiszolgáló tulajdonságainak > biztonsága területen.

Entitás nem található hibaüzenet

Tünet: A REST- vagy GraphQL-kérelmek olyan vagy sémahibát 404 adnak vissza, amely azt jelzi, hogy az entitás forrástáblája nem létezik.

Okoz: Az entitás source mezőjében szereplő táblanév vagy sémaelőtag nem egyezik meg a tényleges adatbázis-objektummal. Az SQL Server-táblanevek alapértelmezés szerint nem érzékenyek a kis- és nagybetűkre, de a sémaelőtagnak (például dbo) jelen kell lennie, ha az alapértelmezett sémát nem használja.

Felbontás: Ellenőrizze az source értéket.dab-config.json Használjon teljesen minősített nevet, például dbo.Products. Futtassa SELECT * FROM INFORMATION_SCHEMA.TABLES a céladatbázisban a táblanév és a séma megerősítéséhez.

Tűzfal vagy hálózati hiba az Azure SQL-hez való csatlakozáskor

Tünet: Az Azure SQL Database-hez való kapcsolatok időtúllépést vagy hibával visszatérnek Cannot open server ... requested by the login.

Okoz: Az azure SQL Server tűzfalszabályai nem engedélyezik az ügyfél IP-címét, vagy az Azure szolgáltatás hozzáférési beállítása le van tiltva.

Felbontás: Az Azure Portalon keresse meg az SQL Server-erőforrást, és válassza a Hálózatkezelés lehetőséget. Adja hozzá az ügyfél IP-címét a tűzfal engedélyezési listájához, vagy engedélyezze az Azure-szolgáltatások és -erőforrások számára a kiszolgáló elérését , ha a DAB az Azure-ban fut. A felügyelt identitás hitelesítéséhez ellenőrizze, hogy az identitás adatbázis-felhasználóként CREATE USER [identity-name] FROM EXTERNAL PROVIDERlett-e hozzáadva.

A JSON-oszlopok nem észlelhetők automatikusan

Tünet: A JSON-adatokat tároló JSON vagy NVARCHAR(MAX) típusú oszlopok nem lesznek strukturált objektumként elérhetővé téve az API-sémában.

Okoz: A Data API Builder még nem észleli automatikusan a JSON-oszlopokat az Azure SQL-ben. Ez egy ismert korlátozás, amelyet a GitHub 444- ik számában észleltek.

Megoldás: Jelenleg nincs áthidaló megoldás. Az oszlop egyszerű sztringértékként jelenik meg. Kövesse a GitHub-problémát a natív JSON-oszlop támogatásának hozzáadásakor megjelenő frissítésekért.