2015-04-17 18 views
5

Ho un database SQL Azure e il controllo è abilitato su di esso. Secondo il portale, il controllo richiede l'uso di stringhe di connessione abilitate per la sicurezza e, di conseguenza, ha impostato il parametro Accesso di sicurezza abilitato sul portale DB su "Richiesto" in modo che nessuna app con stringhe di connessione non protette giunga al mio DB.Database SQL Azure. Login con stringa di connessione non protetta

Quando provo a collegarsi da SSMS utilizzando il nome del server stringa di connessione sicura non come MyAzureServer.database.windows.net ricevo un messaggio di errore che dice solo le connessioni con stringa di connessione sicura sono permessi che è quello che mi aspettavo

Tuttavia la mia applicazione .NET utilizzando la stringa di connessione non protetta come sotto funziona bene e senza errori. Potrei anche vedere che c'è un record in registri di controllo che accesso era successo

Server=tcp:MyDBServer.database.windows.net,1433; 
Database=DemoDB; 
User [email protected]; 
Password=password123%; 
Encrypt=True; 
TrustServerCertificate=False; 
Connection Timeout=30; 

mia domanda è come la mia app .NET utilizzando la stringa di connessione non protetta in grado di accedere al mio Azure SQL Server anche se mi aveva costretto il mio server accetta solo le connessioni con una stringa di connessione sicura.

Inoltre, non sono sicuro di comprendere perfettamente le stringhe di connessione sicure e non sicure, tranne che per includere il testo protetto nel nome del server come MyDBServer.secure.database.windows.net. Mi piacerebbe capire di più su questo.

Come sempre ogni aiuto è molto apprezzato.

risposta

1

sono lieto di informarvi che la settimana scorsa abbiamo migliorato il comportamento della modalità DB “Essenziali”, che elimina la necessità di utilizzare la stringa di connessione sicura da usare di controllo o di mascheramento dei dati.

Ciò significa che SSMS o .net tentativi app per collegare il database utilizzando la stringa di connessione standard sarà funziona bene senza errori, dopo aver impostato il parametro di protezione di accesso abilitato sul portale DB “Essenziali”,

Potresti provare a connetterti da SSMS usando la stringa di connessione standard dopo aver impostato il parametro Access di sicurezza abilitato sul portale DB su "Richiesto?

+0

È una citazione da un blog (si prega di aggiungere il riferimento all'articolo)? O sei uno degli sviluppatori di Azure (ti prego di presentarti allora)? – Cristik

+0

Sono un program manager di SQL –

+0

Grazie @ ron-matchoro. Nadav Helfman di Microsoft ha risposto alla mia domanda sul portale di supporto di Azure. [collegamento] (http://disq.us/8n0ut3). Spero che la documentazione sia presto aggiornata. Se si utilizza TDS versione 7.3 o successiva, la connessione non verrà eseguita se si utilizza una stringa di connessione non protetta e "Accesso abilitato alla sicurezza" è impostato su TRUE nel database di Azure. SQL 2008 SSMS utilizza TDS 7.3 e quindi l'errore. La mia app .NET utilizzava FW 4.5 che utilizza TDS 7.4 e quindi nessun errore. Ricompilato su FW 3.5 e ho visto l'errore. –

1

La stringa di connessione include Encrypt=True;TrustServerCertificate=False quindi è considerata una connessione sicura. La connessione tra client e server sarà crittografata con SSL e il certificato verrà convalidato.

https://msdn.microsoft.com/en-us/library/azure/ff394108.aspx#encryption

+0

Grazie @ alex-s. Come da MSDN Formato stringa di connessione tradizionale: .database.windows.net e stringa di connessione abilitata alla sicurezza: .database.secure.windows.net. Volevo sapere cosa succede esattamente quando inviamo una stringa di connessione sicura o non sicura. –

15

Basta cambiare

Server=tcp:MyDBServer.database.windows.net,1433;Database=DemoDB;User [email protected];Password=password123%;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30; 

Per

Server=tcp:MyDBServer.database.secure.windows.net,1433;Database=DemoDB;User [email protected];Password=password123%;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30; 
+0

La mia domanda era in che modo la mia app .NET utilizzava la stringa di connessione non protetta in grado di accedere al mio server SQL di Azure sebbene avessi forzato il mio server ad accettare solo le connessioni con una stringa di connessione protetta. –

Problemi correlati