2009-04-15 8 views

risposta

4

Idealmente, l'autenticazione di Windows deve essere utilizzata quando si lavora in un tipo Intranet di un ambiente.

Considerando che l'autenticazione di SQL Server può essere utilizzata in tutti gli altri tipi di casi.

Ecco un collegamento che potrebbe essere d'aiuto.

Windows Authentication vs. SQL Server Authentication

2

Non so SQLServer così come altri DBMS' ma immagino che il beneficio è lo stesso che con DB2 e Oracle. Se si utilizza l'autenticazione di Windows, è sufficiente mantenere un solo set di utenti e/o password, quello di Windows, che è già stato fatto per voi.

Autenticazione DBMS significa disporre di un insieme separato di utenti e/o password che devono essere gestiti.

Inoltre, le password di Windows consentono di configurarle centralmente per l'azienda (Active Directory) mentre SQLServer deve gestire un set per ogni istanza DBMS.

3

Se si desidera autenticare gli utenti da utenti di sistema Windows [creati dall'amministratore], in tal caso si andrà per l'autenticazione di Windows nella propria applicazione.

Tuttavia, nel caso in cui si desideri autenticare gli utenti in base al set di utenti disponibili nel database dell'applicazione, in tal caso sarà necessario eseguire l'autenticazione SQL.

Precisamente se l'applicazione è un'applicazione Web ASP.NET, è possibile utilizzare i controlli di accesso standard che dipendono da provider come SqlMembershipProvider, SqlProfileProvider. Puoi configurare i tuoi controlli di accesso e la tua applicazione se dovrebbe autenticarsi contro utenti Windows o utenti di database app. Nel primo caso si chiamerà Autenticazione di Windows e la successiva sarà nota come Autenticazione Sql.

+0

Ehi, sembri un po 'giovane usare termini come "infrastruttura di dominio" - dovrei temere la prossima generazione? :-) – paxdiablo

+0

Ciao Pax, sono d'accordo che non è la parola corretta. Lo modificherò con un'osservazione appropriata. Grazie per il commento. –

23

SQL Server dispone di un sistema integrato per la sicurezza che copre gli accessi ei ruoli. Questo è separato e parallelo agli utenti e ai gruppi di Windows. È possibile utilizzare solo la sicurezza SQL e quindi tutta l'amministrazione si verificherà all'interno del server SQL e non vi è alcuna connessione tra questi account di accesso e gli utenti di Windows. Se si utilizza la modalità mista, gli utenti di Windows vengono trattati come gli accessi SQL.

Ci sono un certo numero di caratteristiche di ogni approccio -

1) Se si desidera utilizzare il pool di connessioni è necessario utilizzare account di accesso SQL, o tutti condividono l'utente stesse finestre - non è una buona idea.

2) Se si desidera tenere traccia di ciò che un determinato utente sta facendo, utilizzare l'autenticazione di Windows ha senso.

3) L'utilizzo degli strumenti di Windows per amministrare gli utenti è molto più potente di SQL, ma il collegamento tra i due è tenue, ad esempio se si rimuove un utente Windows, i dati relativi all'interno di SQL non vengono aggiornati.

+2

Lo stesso utente di Windows per il pool di connessioni non è una cattiva idea se si tratta di servizi (o servizi Web) e si ottiene comunque un vantaggio per i singoli utenti (ma si avranno molte più connessioni in molti più pool) – Brody

1

Penso che la principale differenza sia la sicurezza.

Autenticazione di Windows significa che l'identità viene gestita come parte dell'handshaking di Windows e ora la password è sempre 'fuori là' per l'intercettazione.

Autenticazione SQL significa che è necessario memorizzare (o fornire) un nome utente e una password per rendere più facile la violazione. Sono stati fatti molti sforzi per rendere l'autenticazione di Windows molto solida e sicura.

Potrebbe suggerire che se si implementa l'autenticazione di Windows, utilizzare Gruppi e ruoli per farlo. Gruppi in Windows e ruoli in SQL. Dover configurare molti utenti in SQL è un grosso problema quando puoi semplicemente configurare il gruppo e quindi aggiungere ogni utente al gruppo. (Penso che la maggior parte della sicurezza dovrebbe essere fatta in questo modo comunque).

15

autenticazione di SQL

autenticazione di SQL è l'autenticazione tipico utilizzato per vari sistemi di database, composto da un nome utente e una password. Ovviamente, un'istanza di SQL Server può avere più account utente di questo tipo (utilizzando l'autenticazione SQL) con diversi nomi utente e password. Nei server condivisi in cui diversi utenti dovrebbero avere accesso a diversi database, è necessario utilizzare l'autenticazione SQL. Inoltre, quando un client (computer remoto) si connette a un'istanza di SQL Server su un altro computer rispetto a quello su cui è in esecuzione il client, è necessaria l'autenticazione di SQL Server. Anche se non si definiscono account utente di SQL Server, al momento dell'installazione viene aggiunto un account di root - sa - con la password fornita. Proprio come qualsiasi account di SQL Server, questo può essere utilizzato per accedere localmente o in remoto, tuttavia se un'applicazione è quella che esegue il login e dovrebbe avere accesso a un solo database, si consiglia vivamente di non usa l'account sa, ma creane uno nuovo con accesso limitato. Nel complesso, l'autenticazione SQL è il metodo di autenticazione principale da utilizzare mentre quello che esaminiamo di seguito - Autenticazione di Windows - è più comodo.

autenticazione di Windows

Quando si accede a SQL Server dallo stesso computer su cui è installato, non si dovrebbe essere richiesto di digitare un nome utente e una password. E tu non lo sei, se stai usando l'autenticazione di Windows. Con l'autenticazione di Windows, il servizio SQL Server sa già che qualcuno ha effettuato l'accesso al sistema operativo con le credenziali corrette e utilizza queste credenziali per consentire all'utente di accedere ai suoi database. Naturalmente, ciò funziona fintanto che il client risiede sullo stesso computer di SQL Server o finché il client di connessione corrisponde alle credenziali di Windows del server. L'autenticazione di Windows viene spesso utilizzata come metodo più conveniente per accedere a un'istanza di SQL Server senza digitare un nome utente e una password, tuttavia quando vengono coinvolti più utenti o vengono stabilite connessioni remote con SQL Server, è necessario utilizzare l'autenticazione SQL .

+0

You può anche utilizzare l'autenticazione di Windows senza fornire UserName e Password (in modo che SQL Server Management Studio utilizzi l'utente che ha avviato l'applicazione) per connettersi a SQL Server remoto. –

+0

@Camille G, se si è autenticati con l'autenticazione SQL, ciò consente l'accesso a qualsiasi database nel sistema? – MSIS

+0

@MSIS Dipende! L'utente SQL deve avere alcuni diritti su ciascun database per accedervi, ma se l'utente ha alcuni diritti speciali (sysadmin o così) può avere accesso a ciascun db –

1

modi di autenticazione di SQL Server

SQL Server 2008 offre due opzioni di modalità di autenticazione:

di Windows modalità di autenticazione richiede agli utenti di fornire un nome utente Windows valido e una password per accedere al server di database. Negli ambienti aziendali, queste credenziali sono normalmente credenziali di dominio di Active Directory.

La modalità di autenticazione mista consente l'utilizzo delle credenziali di Windows, ma le integra con gli account utente locali di SQL Server che l'amministratore può creare e gestire in SQL Server.

1

L'autenticazione è il processo di conferma dell'identità di un utente o di un computer. Il processo normalmente consiste in quattro passaggi: L'utente fa un reclamo di identità, di solito fornendo un nome utente.Per esempio, potrei fare questa affermazione dicendo ad un database che il mio nome utente è "mchapple". Il sistema sfida l'utente a dimostrare la propria identità. La sfida più comune è una richiesta di password. L'utente risponde alla sfida fornendo la prova richiesta. In questo esempio, fornirei il database con la mia password Il sistema verifica che l'utente abbia fornito una prova accettabile, ad esempio, controllando la password su un database di password locale o utilizzando un server di autenticazione centralizzato

2

Quando si concede un utente accesso a un database ci sono alcune considerazioni da fare con vantaggi e svantaggi in termini di usabilità e sicurezza. Qui abbiamo due opzioni per l'autenticazione e la concessione dell'autorizzazione agli utenti. Il primo consiste nel dare a tutti l'accesso all'account utente (amministratore di sistema) e quindi limitare manualmente le autorizzazioni conservando un elenco di utenti in cui è possibile concedere o negare le autorizzazioni in base alle esigenze. Questo è anche noto come metodo di autenticazione SQL. Ci sono grossi difetti di sicurezza in questo metodo, come elencato di seguito. La seconda opzione migliore è quella di disporre di Active Directory (AD) per gestire tutte le autorizzazioni e le autorizzazioni necessarie, note anche come autenticazione di Windows. Una volta che l'utente si collega al proprio computer, l'applicazione si collegherà al database utilizzando tali credenziali di accesso di Windows sul sistema operativo.

Il principale problema di sicurezza con l'utilizzo dell'opzione SQL è che viola il principio di privilegio minimo (POLP) che è quello di fornire all'utente le autorizzazioni assolutamente necessarie di cui hanno bisogno e non di più. Usando l'account sa si presentano seri problemi di sicurezza. Il POLP viene violato perché quando l'applicazione utilizza l'account sa ha accesso all'intero server del database. L'autenticazione di Windows d'altra parte segue il POLP semplicemente concedendo l'accesso a un database sul server.

Il secondo problema è che non è necessario che ogni istanza dell'applicazione abbia la password di amministratore. Ciò significa che qualsiasi applicazione è un potenziale punto di attacco per l'intero server. Windows utilizza solo le credenziali di Windows per accedere a SQL Server. Le password di Windows sono archiviate in un repository invece dell'istanza del database SQL e l'autenticazione avviene internamente a Windows senza dover memorizzare le password sull'applicazione.

Un terzo problema di sicurezza si verifica utilizzando il metodo SQL che coinvolge le password. Come presentato nel sito Web di Microsoft e in vari forum di sicurezza, il metodo SQL non "applica la modifica della password o la crittografia, ma viene inviato come testo in chiaro sulla rete. Inoltre, il metodo SQL non si blocca dopo tentativi falliti, consentendo in tal modo un prolungato tentativo di interruzione. Tuttavia, Active Directory utilizza il protocollo Kerberos per crittografare le password mentre impiega anche un sistema di modifica della password e blocco dopo tentativi falliti.

Ci sono anche degli svantaggi di efficienza. Dal momento che richiederete all'utente di inserire le credenziali ogni volta che vogliono accedere al database, gli utenti potrebbero dimenticare le proprie credenziali.

Se un utente viene rimosso, è necessario rimuovere le sue credenziali da ogni istanza dell'applicazione. Se è necessario aggiornare la password di amministratore sa, è necessario aggiornare ogni istanza del server SQL. Ciò è dispendioso in termini di tempo e pericoloso, lascia aperta la possibilità che un utente licenziato conservi l'accesso a SQL Server. Con il metodo Windows nessuno di questi problemi sorge. Tutto è centralizzato e gestito dall'AD.

Gli unici vantaggi dell'utilizzo del metodo SQL risiedono nella sua flessibilità. Puoi accedervi da qualsiasi sistema operativo e rete, anche da remoto. Alcuni vecchi sistemi legacy e alcune applicazioni basate sul web possono supportare solo un accesso sa.

Il metodo AD offre inoltre strumenti di risparmio di tempo come i gruppi per semplificare l'aggiunta e la rimozione di utenti e la capacità di tracciamento degli utenti.

Anche se si riesce a correggere questi difetti di sicurezza nel metodo SQL, si reinventare la ruota. Quando si considerano i vantaggi di sicurezza forniti dall'autenticazione di Windows, inclusi i criteri per le password e in seguito al POLP, è una scelta molto migliore rispetto all'autenticazione SQL. Pertanto si consiglia vivamente di utilizzare l'opzione di autenticazione di Windows.

0

L'autenticazione Mssql è altamente preferibile laddove possibile. Ti consente di conformarti con un dominio Windows già utilizzato sul tuo posto di lavoro e non devi conoscere le password dell'utente.

Tuttavia, sembra che non sarebbe possibile utilizzarlo in occasione del fatto che la macchina del server non sia autenticata dalla rete Intranet locale sul posto di lavoro.

Se si utilizza l'autenticazione sql, la sicurezza sarà interamente a carico dell'utente.

Se si utilizza l'autenticazione microsoft, la sicurezza è essenzialmente gestita da voi, ma dovrete affrontare ulteriori restrizioni.

Problemi correlati