Autenticazione in SQL ServerAuthentication in SQL Server

In SQL Server sono supportate due modalità di autenticazione: la modalità dell'autenticazione di Windows e la modalità mista.SQL Server supports two authentication modes, Windows authentication mode and mixed mode.

  • L'autenticazione di Windows è l'impostazione predefinita e viene spesso definita sicurezza integrata perché questo modello di sicurezza di SQL Server è strettamente integrato con Windows.Windows authentication is the default, and is often referred to as integrated security because this SQL Server security model is tightly integrated with Windows. Determinati account utente e gruppi di Windows vengono considerati attendibili per l'accesso a SQL Server.Specific Windows user and group accounts are trusted to log in to SQL Server. Gli utenti di Windows che sono già stati autenticati non devono presentare credenziali aggiuntive.Windows users who have already been authenticated do not have to present additional credentials.

  • La modalità mista supporta l'autenticazione di Windows e quella di SQL Server.Mixed mode supports authentication both by Windows and by SQL Server. Le coppie di nome utente e password vengono mantenute in SQL Server.User name and password pairs are maintained within SQL Server.

Importante

Se possibile, si consiglia di usare l'autenticazione di Windows.We recommend using Windows authentication wherever possible. In questa modalità viene utilizzata una serie di messaggi crittografati per autenticare gli utenti in SQL Server.Windows authentication uses a series of encrypted messages to authenticate users in SQL Server. Quando si utilizzano gli account di accesso di SQL Server, i nomi di account di accesso di SQL Server e le password crittografate vengono passate attraverso la rete, che li rende meno sicura.When SQL Server logins are used, SQL Server login names and encrypted passwords are passed across the network, which makes them less secure.

Con l'autenticazione di Windows, gli utenti sono già connessi a Windows e non devono eseguire separatamente l'accesso a SQL Server.With Windows authentication, users are already logged onto Windows and do not have to log on separately to SQL Server. Nell'oggetto SqlConnection.ConnectionString seguente è specificata l'autenticazione di Windows senza la richiesta di immissione di nome utente o password.The following SqlConnection.ConnectionString specifies Windows authentication without requiring the a user name or password.

"Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;  

Nota

Gli account di accesso sono distinti dagli utenti del database.Logins are distinct from database users. È necessario eseguire il mapping degli account di accesso o gruppi di Windows agli utenti o ruoli del database in un'operazione separata.You must map logins or Windows groups to database users or roles in a separate operation. È quindi possibile concedere le autorizzazioni agli utenti o ai ruoli per l'accesso agli oggetti di database.You then grant permissions to users or roles to access database objects.

Scenari di autenticazioneAuthentication Scenarios

L'autenticazione di Windows risulta in genere la soluzione ideale nelle seguenti situazioni:Windows authentication is usually the best choice in the following situations:

  • È presente un controller di dominio.There is a domain controller.

  • L'applicazione e il database si trovano nello stesso computer.The application and the database are on the same computer.

  • Si utilizza un'istanza di SQL Server Express o LocalDB.You are using an instance of SQL Server Express or LocalDB.

Gli account di accesso di SQL Server vengono in genere usati nelle seguenti situazioni:SQL Server logins are often used in the following situations:

  • Si dispone di un gruppo di lavoro.If you have a workgroup.

  • Gli utenti si connettono da domini diversi, non attendibili.Users connect from different, non-trusted domains.

  • Si usano applicazioni Internet, ad esempio ASP.NETASP.NET.Internet applications, such as ASP.NETASP.NET.

Nota

Se si specifica l'autenticazione di Windows, gli account di accesso di SQL Server non vengono disabilitati.Specifying Windows authentication does not disable SQL Server logins. Usare ALTER LOGIN DISABLE Transact-SQLTransact-SQL istruzione per disabilitare gli accessi di SQL Server con privilegi elevati.Use the ALTER LOGIN DISABLE Transact-SQLTransact-SQL statement to disable highly-privileged SQL Server logins.

Tipi di account di accessoLogin Types

SQL Server supporta tre tipi di account di accesso:SQL Server supports three types of logins:

  • Account utente di Windows locale o account di dominio attendibile.A local Windows user account or trusted domain account. SQL Server si affida a Windows per l'autenticazione degli account utente di Windows.SQL Server relies on Windows to authenticate the Windows user accounts.

  • Gruppo di Windows.Windows group. L'accesso concesso a un gruppo di Windows viene assegnato a tutti gli account di accesso degli utenti di Windows che sono membri di tale gruppo.Granting access to a Windows group grants access to all Windows user logins that are members of the group.

  • Account di accesso di SQL Server.SQL Server login. In SQL Server sia il nome utente che un hash della password vengono archiviati nel database master, utilizzando metodi di autenticazione interni per verificare i tentativi di accesso.SQL Server stores both the username and a hash of the password in the master database, by using internal authentication methods to verify login attempts.

Nota

SQL Server sono disponibili account di accesso creati da certificati o chiavi asimmetriche che vengono utilizzate solo per la firma del codice.SQL Server provides logins created from certificates or asymmetric keys that are used only for code signing. che non possono essere utilizzati per la connessione a SQL Server.They cannot be used to connect to SQL Server.

Autenticazione in modalità mistaMixed Mode Authentication

Se è necessario utilizzare l'autenticazione in modalità mista, occorre creare account di accesso di SQL Server, che vengono archiviati in SQL Server.If you must use mixed mode authentication, you must create SQL Server logins, which are stored in SQL Server. È quindi necessario specificare il nome utente e la password di SQL Server in fase di esecuzione.You then have to supply the SQL Server user name and password at run time.

Importante

SQL Server viene installato con un account di accesso denominato sa (abbreviazione di "system administrator").SQL Server installs with a SQL Server login named sa (an abbreviation of "system administrator"). Assegnare una password complessa all'account di accesso sa e non usare l'account di accesso sa nell'applicazione.Assign a strong password to the sa login and do not use the sa login in your application. L'account di accesso sa viene mappato al ruolo predefinito del server sysadmin, che dispone di credenziali amministrative irrevocabili nell'intero server.The sa login maps to the sysadmin fixed server role, which has irrevocable administrative credentials on the whole server. Non esistono limiti ai danni che potrebbero verificarsi se un utente non autorizzato ottiene accesso come amministratore di sistema.There are no limits to the potential damage if an attacker gains access as a system administrator. Per impostazione predefinita, tutti i membri del gruppo BUILTIN\Administrators di Windows (il gruppo di amministratori locali) sono membri del ruolo sysadmin, ma possono essere rimossi da tale ruolo.All members of the Windows BUILTIN\Administrators group (the local administrator's group) are members of the sysadmin role by default, but can be removed from that role.

SQL Server fornisce meccanismi di criteri di password di Windows per gli account di accesso di SQL Server è in esecuzione Windows Server 2003Windows Server 2003 o versioni successive.SQL Server provides Windows password policy mechanisms for SQL Server logins when it is running on Windows Server 2003Windows Server 2003 or later versions. I criteri di complessità delle password sono progettati per fungere da deterrente agli attacchi a forza bruta aumentando il numero di password possibili.Password complexity policies are designed to deter brute force attacks by increasing the number of possible passwords. SQL Server è possibile applicare gli stessi criteri di complessità e scadenza utilizzati Windows Server 2003Windows Server 2003 alle password all'interno di SQL Server.SQL Server can apply the same complexity and expiration policies used in Windows Server 2003Windows Server 2003 to passwords used inside SQL Server.

Importante

La concatenazione di stringhe di connessione dall'input dell'utente può lasciare il sistema vulnerabile a un attacco injection alle stringhe di connessione.Concatenating connection strings from user input can leave you vulnerable to a connection string injection attack. Usare SqlConnectionStringBuilder per creare stringhe di connessione sintatticamente valide in fase di esecuzione.Use the SqlConnectionStringBuilder to create syntactically valid connection strings at run time. Per ulteriori informazioni, vedere generatori di stringhe di connessione.For more information, see Connection String Builders.

Risorse esterneExternal Resources

Per altre informazioni, vedere le risorse seguenti.For more information, see the following resources.

RisorsaResource DescrizioneDescription
Entità nella documentazione Online di SQL ServerPrincipals in SQL Server Books Online Vengono descritti gli account di accesso e altre entità di sicurezza in SQL Server.Describes logins and other security principals in SQL Server.

Vedere ancheSee Also

Protezione delle applicazioni ADO.NETSecuring ADO.NET Applications
Scenari di sicurezza delle applicazioni in SQL ServerApplication Security Scenarios in SQL Server
Connessione a un'origine datiConnecting to a Data Source
Stringhe di connessioneConnection Strings
Provider gestiti ADO.NET e Centro per sviluppatori di set di datiADO.NET Managed Providers and DataSet Developer Center