Ruoli del server e del database in SQL Server (ADO.NET)

In tutte le versioni di SQL Server si utilizza la sicurezza basata sui ruoli, che consente di assegnare le autorizzazioni a un ruolo, ovvero un gruppo di utenti, anziché ai singoli utenti. Ai ruoli predefiniti del server e del database è assegnato un set predefinito di autorizzazioni.

Ruoli predefiniti del server

I ruoli predefiniti del server hanno un set fisso di autorizzazioni e un ambito a livello di server. Sono destinati a essere utilizzati per l'amministrazione di SQL Server e non è possibile modificare le autorizzazioni ad essi assegnate. È possibile assegnare account di accesso ai ruoli predefiniti del server senza avere un account utente in un database.

Nota sulla sicurezzaNota sulla sicurezza

Il ruolo predefinito del server sysadmin incorpora tutti gli altri ruoli e ha un ambito illimitato.Non aggiungere entità a questo ruolo a meno che non siano considerate estremamente attendibili.I membri del ruolo sysadmin dispongono di privilegi amministrativi irrevocabili su tutti i database e le risorse del server.

È necessario aggiungere in modo selettivo gli utenti ai ruoli predefiniti del server. Ad esempio, il ruolo bulkadmin consente agli utenti di inserire il contenuto di qualsiasi file locale in una tabella, il che potrebbe compromettere l'integrità dei dati. Per l'elenco completo dei ruoli predefiniti del server e delle autorizzazioni, vedere la documentazione online di SQL Server 2005. I ruoli predefiniti del server per SQL Server 2000 hanno gli stessi nomi e i set di autorizzazioni appropriati per SQL Server 2000.

Ruoli predefiniti del database

I ruoli predefiniti del database includono un set di autorizzazioni predefinito progettato per semplificare la gestione di gruppi di autorizzazioni. I membri del ruolo db_owner possono eseguire tutte le attività di configurazione e di manutenzione nel database.

Per ulteriori informazioni sui ruoli predefiniti di SQL Server, vedere le risorse seguenti.

Risorsa

Descrizione

Ruoli a livello di server e Autorizzazioni dei ruoli predefiniti del server nella documentazione online di SQL Server 2005

Vengono descritti i ruoli predefiniti del server e le autorizzazioni associate in SQL Server 2005.

Ruoli a livello di database e Autorizzazioni dei ruoli predefiniti del database nella documentazione online di SQL Server 2005

Vengono descritti i ruoli predefiniti del database e le autorizzazioni associate.

Aggiunta di un membro a un ruolo predefinito nella documentazione online di SQL Server 2000

Vengono descritte le autorizzazioni associate ai ruoli predefiniti del server e del database e viene illustrato come aggiungere membri ai ruoli.

Ruoli e utenti del database

Gli account di accesso devono essere mappati ad account utente di database per poter essere utilizzati con gli oggetti di database. Gli utenti del database possono quindi essere aggiunti ai ruoli del database, ereditando i set di autorizzazioni associati a tali ruoli. A partire da SQL Server 2005, è possibile concedere tutte le autorizzazioni.

È anche necessario prendere in considerazione il ruolo public, l'account utente dbo e l'account guest quando si progetta la sicurezza per l'applicazione.

Ruolo public

Il ruolo public è contenuto in ogni database, inclusi i database di sistema. Non può essere eliminato e non è possibile aggiungere o rimuovere utenti. Le autorizzazioni concesse al ruolo public sono ereditate da tutti gli altri utenti e ruoli, perché appartengono al ruolo public per impostazione predefinita. Concedere al ruolo public solo le autorizzazioni che si desidera assegnare a tutti gli utenti.

Account utente dbo

L'utente dbo, o proprietario del database, è un account utente che dispone di autorizzazioni implicite per l'esecuzione di tutte le attività nel database. I membri del ruolo predefinito del server sysadmin vengono automaticamente mappati a dbo.

NotaNota

A partire da SQL Server 2005, dbo è anche il nome di uno schema, come descritto in Proprietà e distinzione tra utente e schema in SQL Server (ADO.NET).

L'account utente dbo viene spesso confuso con il ruolo predefinito del database db_owner. L'ambito di db_owner è un database, mentre quello di sysadmin corrisponde all'intero server. L'appartenenza al ruolo db_owner non conferisce i privilegi dell'utente dbo.

Account utente guest

Dopo aver autenticato un utente e dopo avergli consentito l'accesso a un'istanza di SQL Server, è necessario rendere disponibile un account utente distinto in ogni database cui l'utente deve accedere. Il requisito di un account utente in ogni database impedisce agli utenti di connettersi a un'istanza di SQL Server e di accedere a tutti i database di un server. L'esistenza di un account utente guest nel database aggira questo requisito consentendo l'accesso a un database con un account di accesso senza un account utente di database.

L'account guest è un account incorporato in tutte le versioni di SQL Server. Per impostazione predefinita, è disabilitato nei nuovi database. Se viene abilitato, è possibile disabilitarlo revocando la relativa autorizzazione CONNECT tramite l'esecuzione dell'istruzione Transact-SQL REVOKE CONNECT FROM GUEST. In SQL Server 2000 è possibile disabilitarlo eseguendo la stored procedure di sistema sp_dropuser o sp_revokedbaccess di Transact-SQL.

Nota sulla sicurezzaNota sulla sicurezza

Evitare di utilizzare l'account guest; tutti gli account di accesso senza autorizzazioni per il database ottengono le autorizzazioni concesse a questo account.Se è necessario utilizzarlo, concedere le autorizzazioni minime all'account guest.

Per ulteriori informazioni su account di accesso, utenti e ruoli di SQL Server, vedere le seguenti risorse.

Risorsa

Descrizione

Controllo di identità e accesso (Motore di database) nella documentazione online di SQL Server 2008

Contiene collegamenti ad argomenti in cui vengono descritti entità, ruoli, credenziali, entità a protezione diretta e autorizzazioni.

Entità nella documentazione online di SQL Server 2005

Contiene una descrizione delle entità e collegamenti ad argomenti in cui sono illustrati i ruoli del server e del database.

Creating Security Accounts e Managing Security Accounts nella documentazione online di SQL Server 2008 (informazioni in lingua inglese)

Viene descritto come creare e gestire account di accesso, utenti e ruoli.

Vedere anche

Concetti

Scenari di sicurezza delle applicazioni in SQL Server (ADO.NET)

Autenticazione in SQL Server (ADO.NET)

Proprietà e distinzione tra utente e schema in SQL Server (ADO.NET)

Autorizzazioni in SQL Server (ADO.NET)

Altre risorse

Protezione di applicazioni ADO.NET