Il presente elenco di controllo consente di verificare la modalità con cui limitare l'accesso ai dati nell'organizzazione. Inoltre, può essere utilizzato per controllare periodicamente il modo in cui gli utenti accedono alle informazioni archiviate nel Motore di database di SQL Server.
Accesso all'istanza di SQL Server
Gli elementi indicati di seguito sono correlati all'intera istanza del Motore di database.
.gif) |
- È stato concesso l'accesso tramite i gruppi di Windows per la maggior parte degli account di accesso?
Suggerimento La configurazione dell'accesso al Motore di database tramite i gruppi di Windows facilita l'amministrazione e la gestione dell'accesso. Per ulteriori informazioni sugli account di accesso, vedere Entità (Motore di database).
|
.gif) |
- Gli account di accesso obsoleti o non necessari sono stati rimossi dal Motore di database?
Suggerimento Questa operazione potrebbe richiedere un controllo manuale periodico. L'abilitazione dell'accesso eseguito principalmente tramite i gruppi di Windows può facilitare questa attività.
|
.gif) |
- È stato implementato il principio del privilegio minimo?
Suggerimento A entità quali account di accesso, utenti e ruoli devono essere concesse solo autorizzazioni per gli oggetti di database a cui devono accedere per il completamento del lavoro. Non consentire agli utenti normali di eseguire la connessione utilizzando un account amministratore, ad esempio sa, né consentire la connessione della pagina Web, dell'applicazione personalizzata o del pacchetto SSIS tramite tale account.
|
.gif) |
- Per visualizzare i metadati di sistema senza conferire autorizzazioni aggiuntive, è stata concessa l'autorizzazione VIEW DEFINITION in modo selettivo a livello di oggetto, schema, database o server?
Suggerimento Per ulteriori informazioni, vedere GRANT (Transact-SQL).
|
.gif) |
- I server remoti sono stati sostituiti con quelli collegati?
Suggerimento Per ulteriori informazioni, vedere Configurazione di server remoti e Collegamento di server.
|
.gif) |
- Se l'autenticazione pass-through a un server collegato è necessaria, la delega è stata vincolata?
Suggerimento Per ulteriori informazioni, vedere sp_addlinkedsrvlogin (Transact-SQL).
|
.gif) |
- Le query ad hoc sono state disabilitate tramite server, se necessario?
Suggerimento Per ulteriori informazioni, vedere Opzione Ad Hoc Distributed Queries.
|
Gestione dell'identità utente
Gli elementi indicati di seguito sono correlati alle impostazioni di ciascun database.
.gif) |
- L'account utente guest è disabilitato in tutti i database a meno che non venga richiesto per gli utenti anonimi?
Suggerimento Disabilitare gli account utilizzando SQL Server Management Studio o Transact-SQL.
|
.gif) |
- Gli utenti hanno accesso solo ai database necessari?
Suggerimento Questa operazione potrebbe richiedere un controllo manuale periodico. L'abilitazione dell'accesso eseguito principalmente tramite ruoli di SQL Server può facilitare questa attività. Per ulteriori informazioni, vedere Ruoli a livello di server.
|
.gif) |
- È stato concesso l'accesso tramite ruoli di SQL Server alla maggior parte degli utenti?
Suggerimento La configurazione dell'accesso tramite i ruoli del server e del database facilita la gestione dell'accesso. Per ulteriori informazioni sui ruoli, vedere Ruoli a livello di database.
|
.gif) |
- In SQL Server Agent vengono utilizzate credenziali per l'esecuzione di passaggi processo che richiedono privilegi specifici anziché per modificare i privilegi dell'account del servizio SQL Server Agent?
Suggerimento Per ulteriori informazioni, vedere Credenziali (Motore di database).
|
.gif) |
- Se un utente di SQL Server Agent deve eseguire un processo che richiede credenziali di Windows differenti, a queste ultime è stato assegnato un account proxy che dispone di autorizzazioni sufficienti per il completamento dell'attività?
Suggerimento Per ulteriori informazioni, vedere Procedura: Creazione di un proxy (SQL Server Management Studio).
|
.gif) |
- L'accesso a oggetti di database viene incapsulato all'interno di moduli quali stored procedure, funzioni, trigger o assembly?
Suggerimento La limitazione dell'accesso a moduli predefiniti rende più difficile l'esecuzione di codice arbitrario da parte di un utente malintenzionato. Per ulteriori informazioni, vedere Informazioni sulle stored procedure.
|
.gif) |
- Nei moduli è stato impostato in modo esplicito un contesto di esecuzione anziché l'utilizzo del contesto predefinito?
Suggerimento Per ulteriori informazioni, vedere Utilizzo di EXECUTE AS nei moduli.
|
.gif) |
- I moduli vengono firmati per inibire l'alterazione?
Suggerimento Per ulteriori informazioni, vedere Firma del modulo (Motore di database).
|
.gif) |
- Al posto dei ruoli applicazione viene utilizzato USER WITHOUT LOGIN?
Suggerimento Per ulteriori informazioni, vedere il documento relativo alle procedure consigliate sulle attività operative e amministrative per la sicurezza di SQL Server 2005.
|
.gif) |
- EXECUTE AS viene utilizzato al posto di SETUSER?
Suggerimento Per ulteriori informazioni, vedere Confronto tra EXECUTE AS e SETUSER.
|
.gif) |
- I ruoli applicazione sono stati sostituiti con EXECUTE AS?
Suggerimento Utilizzare EXECUTE AS … WITH NO REVERT, quando possibile. Utilizzare l'opzione EXECUTE AS … WITH COOKIE durante la nidificazione delle modifiche di identità. Per ulteriori informazioni, vedere EXECUTE AS (Transact-SQL).
|
Accesso a oggetti
Gli elementi indicati di seguito sono correlati all'accesso a oggetti di database.
.gif) |
- Ai ruoli public del server e del database sono state concesse, se disponibili, poche autorizzazioni?
Suggerimento Tutti gli account di accesso e gli utenti sono membri dei ruoli public e non possono essere rimossi. Questi ruoli devono disporre di autorizzazioni molto limitate.
|
.gif) |
- Gli oggetti di database simili sono raggruppati insieme nello stesso schema?
Suggerimento Creare schemi in base ai requisiti aziendali e utilizzare questi schemi personalizzati al posto dello schema dbo. Per ulteriori informazioni, vedere Schemi (Motore di database).
|
.gif) |
- La sicurezza degli oggetti di database viene gestita impostando la proprietà e le autorizzazioni a livello di schema?
Suggerimento Per ulteriori informazioni, vedere GRANT (autorizzazioni per schemi) (Transact-SQL).
|
.gif) |
- Gli schemi dispongono di proprietari distinti oppure sono tutti di proprietà di dbo?
Suggerimento Quando tutti gli schemi dispongono dello stesso proprietario, i controlli delle autorizzazioni necessari potrebbero essere ignorati dal concatenamento della proprietà. Per ulteriori informazioni, vedere Catene di proprietà.
|
.gif) |
- Viene utilizzata la firma di codice procedurale se sono necessari privilegi aggiuntivi per la procedura?
Suggerimento Per ulteriori informazioni, vedere Firma del modulo (Motore di database).
|
.gif) |
- L'opzione di database TRUSTWORTHY è impostata su OFF?
Suggerimento Se è impostata su ON, i moduli di database (ad esempio funzioni definite dall'utente o stored procedure) in cui viene utilizzato un contesto di rappresentazione possono accedere a risorse esterne al database. Utilizzare l'istruzione ALTER DATABASE per modificare l'impostazione TRUSTWORTHY. Per ulteriori informazioni, vedere Proprietà di database TRUSTWORTHY.
|
.gif) |
- Nei moduli sono previsti passaggi per impedire attacchi SQL injection?
Suggerimento Per ulteriori informazioni, vedere Attacco intrusivo nel codice SQL.
|
.gif) |
- Se è consentito l'accesso ad hoc al database invece di incapsulare l'accesso all'interno di moduli, nelle applicazioni vengono prese misure per impedire attacchi SQL injection?
Suggerimento Per ulteriori informazioni, vedere i collegamenti riportati di seguito.
|
Vedere anche
Concetti
Altre risorse