15

Otrzymuję następujący komunikat o błędzie, gdy próbuję połączyć się z SQL Azure.Jak rozwiązać Azure "Logowanie do systemu Windows nie jest obsługiwane w tej wersji programu SQL Server"?

logowania systemu Windows nie są obsługiwane w tej wersji SQL Server

Używam Azure ciąg połączenia. Na rozwój używam SQL Server Express. Ten konkretny błąd jest zgłaszany podczas próby pobrania niektórych danych z bazy danych.

Kontekst że używam jest uruchomiony w wykorzystaniem klauzuli, patrz poniżej

function List<SomeType> GetList(string dbContextName) 
{ 
    using (MyDbContext context = new MyDbContext) 
    { 
     return context.SomeTypes.ToList(); 
    } 
} 

Używamy Entity Framework w wersji 4.2, ASP.NET MVC 3 i .NET 4.0.

Jak mogę rozwiązać ten problem?

+4

Wydaje się całkiem oczywiste, że do ochrony wymagane jest logowanie SQL zamiast logowania Windows - np. Brak SSPI itp; tylko nazwa użytkownika SQL/hasło –

+2

** POKAŻ WAM ** stosowane ciągi połączeń! Nie możesz ** używać ustawienia 'Integrated Security = SSPI;' względem SQL Azure, które prawdopodobnie jest domyślną lokalną instalacją SQL Server Express ... –

Odpowiedz

6

Zintegrowane uwierzytelnianie (tj. SSPI w ciągu połączenia) NIE jest obsługiwane w SQL Azure. Obsługiwane jest tylko uwierzytelnianie SQL (to jest nazwa użytkownika & hasło w ciągu połączenia)

8

Az już wspomniane przez innych, tylko SQL Server uwierzytelnianie jest obsługiwane w SQL Azure. Możesz przeczytać więcej na Guidelines and Limitations with SQL Azure. Tak samo jak Security Guidelines and limitations for SQL Azure.

Musisz samemu uzyskać numer CREATE LOGIN w swojej bazie danych MASTER, wtedy będziesz potrzebować CREATE USER w swojej niestandardowej Bazie danych Azure. Nie zapomnij również wykonać polecenia sys.sp_addrolemember, aby udzielić użytkownikowi pewnych uprawnień.

Więcej o managing users and logins in SQL Azure można znaleźć here.

I, na koniec, zawsze możesz spojrzeć na nieocenione źródło dla connection strings.

22

Używałem user/pass i nadal otrzymuję komunikat o błędzie. Ale dodałem to do mojego ciągu połączenia i zadziałało.

Trusted_Connection=False;Encrypt=True; 
8

Set

Integrated Security=False 

W ciągu połączenia.

4

Prawdopodobnie używany nieprawidłowy ciąg połączenia, to jest format ciąg połączenia, który pracował w moim przypadku:

"ConnectionString": „Server = tcp: xxxx.database.windows.net, 1433; Database = xxx; Identyfikator użytkownika = xxx; Hasło = xxx; Szyfrowanie = True; TrustServerCertificate = Fałsz; Connection Timeout = 30; "

0
1.**Windows Authentication** is not supported in Azure so you should go with **SQL Server Authentication**. 
2.When you use SQL server Authentication you should pass User Id(Login in SQL server) and Password(Password in SQL server). 
3.User Id should contain space in between should not be like UserId. 
4.Trusted_Connection should be false. 
The connection string in *appsettings.json* look like this: 

"ConnectionStrings": { 
    "WinDwellContext": "Server=ServerName;Database=DbName;User Id=loginName;Password=loginPassword;Trusted_Connection=false;MultipleActiveResultSets=true" 
    } 
Powiązane problemy