Sto sviluppando una semplice applicazione C#, vorrei sapere questo: Quando collego la mia applicazione a SQL Server sul mio PC, conosco la stringa di connessione (nome del server, password ecc.), ma quando la collego ad un altro PC, la stringa di connessione di SQL Server è diversa. C'è un account comune in SQL Server che viene con l'account predefinito che può connettersi? Ho sentito parlare dell'account sa
in SQL Server, cos'è sa
?
Ci sono diverse cose di cui preoccuparsi quando ci si connette a SQL Server su un'altra macchina.
Molto spesso SQL server può essere eseguito come un'istanza predefinita, il che significa che puoi semplicemente specificare il nome dell'host/indirizzo IP, ma potresti incontrare uno scenario in cui viene eseguito come un'istanza con nome (Sql Express per esempio). In questo scenario dovrete specificare il nome dell'hostname/instanza.
Dovete capire che un server di database o DBA non vuole che chiunque sia in grado di connettersi o modificare il contenuto del server. Questo è l'intero scopo degli account di sicurezza. Se un singolo username/pwd funzionasse su qualsiasi macchina, non fornirebbe alcuna protezione. Quella cosa "sa" di cui avete sentito parlare, non funziona con SQL Server 2005, 2008 o 2012. Non sono sicuro delle versioni precedenti. Credo che da qualche parte nei primi giorni di SQL Server, il nome utente e la pwd di default erano sa/sa, ma non è più così.
Per tua informazione, la sicurezza del database e i ruoli sono molto più complicati oggi. Potresti voler dare un'occhiata ai dettagli dell'autenticazione basata su Windows. Se il tuo SQL Server è configurato per questo, non hai bisogno di nessun username/pwd nella stringa di connessione per connetterti ad esso. Tutto quello che devi cambiare è il nome della macchina server e la stessa stringa di connessione funzionerà con entrambe le tue macchine, dato che entrambe hanno lo stesso nome di db, ovviamente.
Puoi usare sia l'autenticazione di Windows, se il tuo server è in un dominio, sia l'autenticazione Sql. Sa - è un amministratore di sistema, l'account root per l'autenticazione del server SQL. Ma è una cattiva pratica usarlo per il collegamento dei vostri clienti. Dovresti creare i tuoi account e usarli per connetterti al tuo SQL. In ogni connessione impostate account login, la sua password e il database predefinito, che volete connettere.