Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Řešení běžných problémů s připojením, ověřováním a konfigurací entit SQL Serveru v Tvůrci rozhraní Data API
Časté dotazy
Co je podpora SQL Serveru v DAB?
Tvůrce rozhraní Data API podporuje Microsoft SQL Server a Azure SQL jako back-endy relační databáze. DAB se připojuje pomocí ovladače Microsoft.Data.SqlClient a převádí požadavky REST a GraphQL na dotazy T-SQL. Podporují se místní instance SQL Serveru i Azure SQL Database.
Jaký formát připojovacího řetězce sql Server používá?
DAB používá připojovací řetězce ve stylu ADO.NET pro SQL Server. Typický řetězec vypadá takto Server=localhost,1433;Database=mydb;User Id=sa;Password=yourpassword;TrustServerCertificate=True;. Nastavte připojovací řetězec v poli data-source.connection-string nebo ho předejte pomocí možnosti --connection-string v dab init.
Jaké režimy ověřování se podporují?
DAB podporuje ověřování SQL (uživatelské jméno a heslo), integrované ověřování Systému Windows a ověřování Microsoft Entra (dříve Azure Active Directory) pro Azure SQL. Pokud chcete použít ověřování Entra, nastavte Authentication=Active Directory Default nebo Active Directory Managed Identity v připojovacím řetězci a ujistěte se, že spravovaná identita nebo instanční objekt mají udělený přístup k databázi.
Běžné problémy
Nejde se připojit ke kontejneru SQL Serveru
Příznak: DAB nefunguje s chybou připojení, například A network-related or instance-specific error occurred.
Způsobit: Port kontejneru SQL Serveru není správně namapovaný, název hostitele je nesprávný nebo kontejner ještě není připravený přijímat připojení.
Rozlišení: Ověřte, že kontejner běží s docker ps. Ověřte mapování portů (výchozí 1433) a použijte localhost,1433 v připojovacím řetězci. Přidejte TrustServerCertificate=True , pokud používáte certifikát podepsaný svým držitelem. Pokud se kontejner právě spustil, počkejte několik sekund, než se SQL Server inicializuje, než se spustí DAB.
Přihlášení uživatele se nezdařilo.
Příznak: Protokoly DAB zobrazují Login failed for user 'sa' nebo podobnou chybu ověřování.
Příčina: Uživatelské jméno, heslo nebo režim ověřování v připojovacím řetězci neodpovídají konfiguraci SQL Serveru. SQL Server může být spuštěný také v režimu ověřování systému Windows.
Rozlišení: Ověřte, že přihlašovací údaje odpovídají těm, které jsou nastavené při vytvoření kontejneru nebo serveru. Pokud používáte kontejner, zkontrolujte proměnnou SA_PASSWORD prostředí. Pokud chcete povolit ověřování SQL v existující instanci, nastavte režim ověřování serveru na SQL Server a režim ověřování systému Windows v aplikaci SQL Server Management Studio v části Zabezpečení vlastností > serveru.
Chyba: Entita nenalezena
Příznak: Požadavky REST nebo GraphQL vrací chybu 404 nebo chybu schématu, která značí, že zdrojová tabulka entity neexistuje.
Příčina: Název tabulky nebo předpona schématu v poli entity source neodpovídá skutečnému databázovému objektu. Názvy tabulek SQL Serveru ve výchozím nastavení nerozlišují malá a velká písmena, ale pokud není používáno výchozí schéma, musí být přítomna předpona schématu (například dbo).
Rozlišení: Zkontrolujte hodnotu v dab-config.json. Použijte plně kvalifikovaný název, například dbo.Products. Spuštěním SELECT * FROM INFORMATION_SCHEMA.TABLES v cílové databázi potvrďte název a schéma tabulky.
Chyba brány firewall nebo sítě při připojování k Azure SQL
Příznak: Připojení ke službě Azure SQL Database vyprší časový limit nebo se vrátí Cannot open server ... requested by the login.
Příčina: IP adresa klienta není povolená pravidly brány firewall serveru Azure SQL server nebo je zakázáno nastavení přístupu ke službám Azure.
Rozlišení: Na webu Azure Portal přejděte k prostředku SQL Serveru a vyberte Sítě. Přidejte IP adresu klienta do seznamu povolených bran firewall nebo povolte Povolit službám a prostředkům Azure přístup k tomuto serveru, pokud DAB běží v Azure. Pro ověřování spravované identity ověřte, že identita byla přidána jako uživatel databáze s CREATE USER [identity-name] FROM EXTERNAL PROVIDER.
Sloupce JSON se nezjistí automaticky.
Příznakem: Sloupec s typem JSON nebo NVARCHAR(MAX), který ukládá data JSON, není vystavený jako strukturovaný objekt ve schématu rozhraní API.
Příčina: Data API builder ještě v Azure SQL automaticky nezjišťuje a nemapuje sloupce JSON. Jedná se o známé omezení sledované v problému GitHubu č. 444.
Rozlišení: V tuto chvíli neexistuje žádné alternativní řešení. Sloupec se zobrazí jako hodnota prostého textu. Sledujte problematiku na GitHubu pro aktualizace o tom, kdy bude přidána nativní podpora sloupců JSON.