Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozwiązania typowych problemów z łącznością, uwierzytelnianiem i konfiguracją jednostek programu SQL Server w narzędziu Data API Builder.
Często zadawane pytania
Co to jest obsługa programu SQL Server w języku DAB?
Konstruktor interfejsu API danych obsługuje programy Microsoft SQL Server i Azure SQL jako zaplecze relacyjnej bazy danych. DAB łączy się przy użyciu sterownika Microsoft.Data.SqlClient i tłumaczy żądania REST i GraphQL na zapytania języka T-SQL. Obsługiwane są zarówno lokalne wystąpienia programu SQL Server, jak i usługa Azure SQL Database.
Jakiego formatu parametrów połączenia używa program SQL Server?
DAB używa parametrów połączenia w stylu ADO.NET dla SQL Server. Typowy ciąg wygląda następująco: Server=localhost,1433;Database=mydb;User Id=sa;Password=yourpassword;TrustServerCertificate=True;. Ustaw ciąg połączenia w polu data-source.connection-stringdab-config.json lub przekaż go za pośrednictwem opcji --connection-string w dab init.
Jakie tryby uwierzytelniania są obsługiwane?
DAB obsługuje uwierzytelnianie SQL (nazwę użytkownika i hasło), zintegrowane uwierzytelnianie systemu Windows i uwierzytelnianie Microsoft Entra (dawniej Azure Active Directory) dla Azure SQL. Aby użyć uwierzytelniania Entra, ustaw Authentication=Active Directory Default lub Active Directory Managed Identity w łańcuchu połączenia i upewnij się, że tożsamość zarządzana lub jednostka usługi otrzymały dostęp do bazy danych.
Typowe problemy
Nie można nawiązać połączenia z kontenerem programu SQL Server
Symptom: DAB nie można uruchomić z powodu błędu połączenia, takiego jak A network-related or instance-specific error occurred.
Spowodować: Port kontenera programu SQL Server nie jest poprawnie mapowany, nazwa hosta jest nieprawidłowa lub kontener nie jest jeszcze gotowy do akceptowania połączeń.
Rozdzielczość: Sprawdź, czy kontener jest uruchomiony za pomocą polecenia docker ps. Potwierdź mapowanie portów (ustawienie domyślne 1433) i użyj localhost,1433 w ciągu połączenia. Dodaj TrustServerCertificate=True , jeśli używasz certyfikatu z podpisem własnym. Jeśli kontener został właśnie uruchomiony, zaczekaj kilka sekund na zainicjowanie programu SQL Server przed uruchomieniem języka DAB.
Logowanie użytkownika nie powiodło się
Objaw: Dzienniki DAB pokazują Login failed for user 'sa' lub podobny błąd uwierzytelniania.
Spowodować: Nazwa użytkownika, hasło lub tryb uwierzytelniania w parametrach połączenia nie jest zgodny z konfiguracją programu SQL Server. Program SQL Server może być również uruchomiony w trybie tylko uwierzytelniania systemu Windows.
Rozdzielczość: Upewnij się, że poświadczenia są zgodne z tymi ustawionymi podczas tworzenia kontenera lub serwera. Jeśli używasz kontenera, sprawdź zmienną SA_PASSWORD środowiskową. Aby włączyć uwierzytelnianie SQL w istniejącym wystąpieniu, ustaw tryb uwierzytelniania serwera na program SQL Server i tryb uwierzytelniania systemu Windows w programie SQL Server Management Studio w obszarze Zabezpieczenia właściwości > serwera.
Błąd: Nie znaleziono jednostki
Objaw: Żądania REST lub GraphQL zwracają błąd schematu lub wskazują, że tabela źródłowa jednostki nie istnieje.
Przyczyna: Nazwa tabeli lub prefiks schematu w polu jednostki source nie odpowiada rzeczywistemu obiektowi bazy danych. Nazwy tabel programu SQL Server są domyślnie niewrażliwe na wielkość liter, dboale prefiks schematu (na przykład ) musi być obecny, jeśli domyślny schemat nie jest używany.
Rozdzielczość:source Sprawdź wartość w pliku dab-config.json. Użyj w pełni kwalifikowanej nazwy, takiej jak dbo.Products. Uruchom polecenie SELECT * FROM INFORMATION_SCHEMA.TABLES w docelowej bazie danych, aby potwierdzić nazwę tabeli i schemat.
Błąd zapory lub sieci podczas nawiązywania połączenia z usługą Azure SQL
Objaw: Połączenia z usługą Azure SQL Database przekraczają limit czasu lub zwracają wartość Cannot open server ... requested by the login.
Przyczyna: Adres IP klienta nie jest dozwolony przez reguły zapory serwera Azure SQL lub ustawienie dostępu do usługi Azure jest wyłączone.
Rozdzielczość: W witrynie Azure Portal przejdź do zasobu serwera SQL i wybierz pozycję Sieć. Dodaj adres IP klienta do listy dozwolonych w zaporze lub włącz opcję Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera, jeśli DAB działa na platformie Azure. W celu uwierzytelniania za pomocą tożsamości zarządzanej sprawdź, czy tożsamość została dodana jako użytkownik bazy danych przy użyciu CREATE USER [identity-name] FROM EXTERNAL PROVIDER.
Kolumny JSON nie są wykrywane automatycznie
Objawem: Kolumna z typem JSON lub NVARCHAR(MAX), która przechowuje dane JSON, nie jest uwidaczniona jako obiekt ustrukturyzowany w schemacie interfejsu API.
Przyczyna: Konstruktor API danych nie wykrywa ani nie mapuje jeszcze automatycznie kolumny JSON w usłudze Azure SQL. Jest to znane ograniczenie śledzone w problemie usługi GitHub #444.
Rozdzielczość: Obecnie nie ma obejścia problemu. Kolumna zostanie uwidoczniona jako zwykła wartość ciągu. Śledź sprawę GitHub, aby otrzymywać informacje o dodaniu natywnej obsługi kolumn JSON.