Entità (Motore di database)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di sistemi analitici (PDW)

Le entità sono entità che possono richiedere risorse di SQL Server. Analogamente ad altri componenti del modello di autorizzazione di SQL Server, le entità possono essere disposte in una gerarchia. Il campo di influenza di un'entità dipende dall'ambito della definizione dell'entità (Windows, server o database) e dal tipo di entità (indivisibile o raccolta). Un account di accesso di Windows è un esempio di entità indivisibile mentre un gruppo di Windows è un esempio di entità costituita da una raccolta. Ogni entità dispone di un ID di sicurezza (SID). Questo argomento si applica a tutte le versioni di SQL Server, ma esistono alcune restrizioni sulle entità a livello di server in database SQL o Azure Synapse Analytics.

Nota

Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).

Entità a livello di SQL Server

  • Account di accesso per l'autenticazione di SQL Server
  • Account di accesso con autenticazione di Windows per un utente di Windows
  • Account di accesso con autenticazione di Windows per un gruppo di Windows
  • Account di accesso per l'autenticazione di Microsoft Entra per un utente di Microsoft Entra
  • Accesso all'autenticazione di Microsoft Entra per un gruppo Microsoft Entra
  • Ruolo server

Entità a livello di database

  • Utente database (sono disponibili 12 tipi di utenti. Per altre informazioni, vedere CREATE U edizione Standard R.
  • Ruolo del database
  • Ruolo applicazione

sa Login

L'account di accesso di SQL Server sa è un'entità a livello di server. Per impostazione predefinita, questo account viene creato durante l'installazione di un'istanza. A partire da SQL Server 2005 (9.x), il database predefinito di sa è master. Si tratta di un comportamento diverso rispetto alle versioni precedenti di SQL Server. L'account di accesso sa è un membro del ruolo predefinito a livello di server sysadmin. L'account di accesso sa dispone di tutte le autorizzazioni per il server e non può essere limitato. L'account di accesso sa non può essere eliminato, ma può essere disabilitato in modo da impedirne l'uso.

Utente dbo e schema dbo

L'utente dbo è un'entità utente speciale in ogni database. Tutti gli amministratori di SQL Server, i membri del ruolo predefinito del server sysadmin, l'account di accesso sa e i proprietari del database accedono al database come utenti dbo. L'utente dbo dispone di tutte le autorizzazioni nel database e non può essere limitato o eliminato. dbo rappresenta il proprietario del database, ma l'account utente dbo non equivale al ruolo predefinito del database db_owner, mentre il ruolo predefinito del database db_owner non equivale all'account utente registrato come proprietario del database.
L'utente dbo è proprietario dello schema dbo. Lo schema dbo è lo schema predefinito per tutti gli utenti, a meno che non venga specificato uno schema diverso. Lo schema dbo non può essere eliminato.

Ruolo del server public e ruolo del database

Ogni account di accesso appartiene al ruolo predefinito del server public e ogni utente del database appartiene al ruolo del database public. Quando a un account di accesso o a un utente non sono state concesse o negate autorizzazioni specifiche per un'entità a protezione diretta, l'account di accesso o l'utente eredita le autorizzazioni concesse al ruolo public su tale entità a protezione diretta. Il ruolo predefinito del server public e il ruolo predefinito del database public non possono essere eliminati. Tuttavia è possibile revocare le autorizzazioni dei ruoli public. Esistono numerose autorizzazioni assegnate per impostazione predefinita ai ruoli public. La maggior parte di queste autorizzazioni è necessaria per le operazioni di routine nel database, ovvero quelle operazioni che tutti gli utenti devono essere in grado di eseguire. Prestare attenzione durante la revoca delle autorizzazioni dell'account di accesso public o dell'utente perché questa operazione ha ripercussioni su tutti gli account di accesso e su tutti gli utenti. In genere non è consigliabile negare le autorizzazioni all'account di accesso public perché l'istruzione deny esegue l'override di qualsiasi istruzione grant che è possibile eseguire sui singoli utenti.

INFORMATION_SCHEMA e utenti e schemi sys

Ogni database include due entità visualizzate come utenti nelle viste del catalogo: INFORMATION_SCHEMA e sys. Queste entità sono richieste internamente dal motore di database. Pertanto non possono essere modificate o eliminate.

Account di accesso basati su certificati di SQL Server

Le entità del server i cui nomi sono racchiusi tra due simboli di cancelletto (##) sono solo per uso interno di sistema. Le entità seguenti vengono create dai certificati quando SQL Server è installato e non devono essere eliminate.

  • ##MS_SQLResourceSigningCertificate##
  • ##MS_SQLReplicationSigningCertificate##
  • ##MS_SQLAuthenticatorCertificate##
  • ##MS_AgentSigningCertificate##
  • ##MS_PolicyEventProcessingLogin##
  • ##MS_PolicySigningCertificate##
  • ##MS_PolicyTsqlExecutionLogin##

Questi account principali non hanno password che possono essere modificate dagli amministratori poiché si basano sui certificati rilasciati a Microsoft.

L'utente Guest

Ogni database include un guest. Le autorizzazioni garantite all'utente guest sono ereditate dagli utenti che hanno accesso al database ma non dispongono di un account utente nel database. Non è possibile eliminare l'utente guest, ma è possibile disabilitarlo revocando la relativa autorizzazione CONNECT. L'autorizzazione CONNECT può essere revocata eseguendo REVOKE CONNECT FROM GUEST; all'interno di qualsiasi database diverso da master o tempdb.

Per informazioni sulla progettazione di un sistema di autorizzazioni, vedere Introduzione alle autorizzazioni del motore di database.

Gli argomenti seguenti sono inclusi in questa sezione della documentazione online di SQL Server:

Vedi anche

Sicurezza di SQL Server
sys.database_principals (Transact-SQL)
sys.server_principals (Transact-SQL)
sys.sql_logins (Transact-SQL)
sys.database_role_members (Transact-SQL)
Ruoli a livello di server
Ruoli a livello di database