Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Oplossingen voor veelvoorkomende problemen met SQL Server-connectiviteit, verificatie en entiteitsconfiguratie in Data API Builder.
Veelgestelde vragen
Wat is SQL Server-ondersteuning in DAB?
Data API Builder ondersteunt Microsoft SQL Server en Azure SQL als back-ends voor relationele databases. DAB maakt verbinding met behulp van het stuurprogramma Microsoft.Data.SqlClient en vertaalt REST- en GraphQL-aanvragen in T-SQL-query's. Zowel on-premises SQL Server-exemplaren als Azure SQL Database worden ondersteund.
Welke verbindingsreeksindeling gebruikt SQL Server?
DAB maakt gebruik van ADO.NET-achtige connection strings voor SQL Server. Een typische tekenreeks ziet er als Server=localhost,1433;Database=mydb;User Id=sa;Password=yourpassword;TrustServerCertificate=True; uit. Stel de verbindingsreeks in het data-source.connection-string veld van dab-config.json of geef deze door via de --connection-string optie in dab init.
Welke verificatiemodi worden ondersteund?
DAB ondersteunt SQL-verificatie (gebruikersnaam en wachtwoord), geïntegreerde Windows-verificatie en Microsoft Entra-verificatie (voorheen Azure Active Directory) voor Azure SQL. Als u Entra-verificatie wilt gebruiken, stelt u de verbindingsreeks in op Authentication=Active Directory Default of Active Directory Managed Identity, en zorgt u ervoor dat de beheerde identiteitsbeheer of service-principal toegang heeft gekregen tot de database.
Veelvoorkomende problemen
Kan geen verbinding maken met SQL Server-container
Symptoom: DAB kan niet worden gestart met een verbindingsfout zoals A network-related or instance-specific error occurred.
Oorzaak: De SQL Server-containerpoort is niet juist toegewezen, de hostnaam is onjuist of de container is nog niet gereed om verbindingen te accepteren.
Resolutie: Controleer of de container wordt uitgevoerd met docker ps. Bevestig de poorttoewijzing (standaard 1433) en gebruik localhost,1433 in de verbindingsreeks. Toevoegen TrustServerCertificate=True als u een zelfondertekend certificaat gebruikt. Als de container net is gestart, wacht u enkele seconden tot SQL Server is geïnitialiseerd voordat u DAB start.
Aanmelden is mislukt voor de gebruiker
Symptoom: DAB-logboeken geven een vergelijkbare verificatiefout weer Login failed for user 'sa' .
Oorzaak: De gebruikersnaam, het wachtwoord of de verificatiemodus in de verbindingsreeks komt niet overeen met de SQL Server-configuratie. SQL Server kan ook worden uitgevoerd in de modus alleen-Windows-authenticatie.
Resolutie: Controleer of de referenties overeenkomen met de referenties die zijn ingesteld wanneer de container of server is gemaakt. Als u een container gebruikt, controleert u de SA_PASSWORD omgevingsvariabele. Als u SQL-verificatie wilt inschakelen op een bestaand exemplaar, stelt u de serververificatiemodus in op SQL Server en windows-verificatiemodus in SQL Server Management Studio onder Servereigenschappenbeveiliging>.
Fout bij het niet vinden van de entiteit
Symptoom: REST- of GraphQL-aanvragen retourneren een 404 of schemafout die aangeeft dat de brontabel van de entiteit niet bestaat.
Oorzaak: De tabelnaam of het schemavoorvoegsel in het veld van source de entiteit komt niet overeen met het werkelijke databaseobject. Sql Server-tabelnamen zijn standaard niet hoofdlettergevoelig, maar het schemavoorvoegsel (bijvoorbeeld dbo) moet aanwezig zijn als het standaardschema niet wordt gebruikt.
Resolutie: Controleer de source waarde in dab-config.json. Gebruik een volledig gekwalificeerde naam, zoals dbo.Products. Voer SELECT * FROM INFORMATION_SCHEMA.TABLES deze opdracht uit in de doeldatabase om de tabelnaam en het schema te bevestigen.
Firewall- of netwerkfout bij het maken van verbinding met Azure SQL
Symptoom: Er treedt een time-out op voor verbindingen met Azure SQL Database of retourneert Cannot open server ... requested by the login.
Oorzaak: Het IP-adres van de client is niet toegestaan door de firewallregels van de Azure SQL-server of de azure-servicetoegangsinstelling is uitgeschakeld.
Resolutie: Navigeer in Azure Portal naar de SQL Server-resource en selecteer Netwerken. Voeg het IP-adres van de client toe aan de firewall-acceptatielijst, of schakel toestaan van Azure-services en -resources om toegang tot deze server te krijgen in, indien DAB wordt uitgevoerd op Azure. Controleer voor verificatie van beheerde identiteiten of de identiteit is toegevoegd als databasegebruiker met CREATE USER [identity-name] FROM EXTERNAL PROVIDER.
JSON-kolommen worden niet automatisch gedetecteerd
Symptoom: Een kolom met een JSON- of NVARCHAR(MAX)-type waarin JSON-gegevens worden opgeslagen, wordt niet weergegeven als een gestructureerd object in het API-schema.
Oorzaak: Data API Builder detecteert en wijst JSON-kolommen nog niet automatisch toe in Azure SQL. Dit is een bekende beperking die wordt bijgehouden in GitHub-probleem #444.
Resolutie: Er is op dit moment geen tijdelijke oplossing. De kolom wordt weergegeven als een gewone tekenreekswaarde. Volg het GitHub-probleem voor updates wanneer ondersteuning voor systeemeigen JSON-kolommen wordt toegevoegd.