2009-07-15 14 views
138

Mi sono recentemente imbattuto in molte aree diverse di SQL Server con le quali normalmente non si scherza. Uno di quelli che mi ha confuso è l'area di login e utenti. Sembra che dovrebbe essere un argomento piuttosto semplice ...Differenza tra un utente e un accesso in SQL Server

Sembra che ogni accesso possa avere solo 1 utente e ogni utente può avere solo 1 accesso.

Un accesso può essere associato a più tabelle associando tale utente a più tabelle.

Quindi la mia domanda è: perché avere un login e un utente? sembrano essere praticamente uno nella stessa. Quali sono le differenze, o cosa mi sembra che manchi?

risposta

162

Un "Login" concede la voce principale nel SERVER.

Un "utente" concede una voce di accesso in un singolo DATABASE.

Un "Login" può essere associato a molti utenti (uno per database).

Ciascuno degli oggetti precedenti può disporre di autorizzazioni assegnate al proprio livello. per una spiegazione di ogni

+6

Ah, non mi meraviglia che non sia riuscito a trovare una differenza. Stavo semplicemente lavorando con 1 database. Grazie. – corymathews

+1

Questa risposta è fondamentalmente corretta, ma, a quanto ho capito, un particolare utente può effettivamente avere accesso a più di un database disponibile su quel particolare server. Quindi login-to-user è una mappatura 1-a-1, ma user-to-database è una mappatura 1-a-molti. –

+0

@coreymathews: meno tempo in "Boy Meets World" e più tempo sui libri! ;). – MSIS

25

Uno dei motivi per cui entrambi sono in modo che l'autenticazione possa essere eseguita dal server del database, ma l'autorizzazione può essere applicata al database. In questo modo, se si sposta il database su un altro server, è sempre possibile rimappare la relazione di accesso dell'utente sul server del database, ma il database non deve essere modificato.

+0

Potete per favore elaborare? Qual è il vantaggio della modifica eseguita sul server di database anziché sul database? – HeyJude

+0

Dire di voler eseguire il backup e il ripristino di un database. Il ripristino viene spesso eseguito su un nuovo server. Potrebbe non essere necessario apportare modifiche a un database in un ripristino. –

+0

Perché non apportare la modifica solo dopo che il database è stato ripristinato? – HeyJude

18

In breve,

accessi avranno l'accesso del server.

e

utenti avranno l'accesso del database.

5

Penso che questa sia una domanda molto utile con una buona risposta. Giusto per aggiungere i miei due centesimi dalla pagina MSDN Create a Login:

Un account di accesso è un'identità di protezione, o un soggetto che può essere autenticato da un sistema sicuro. Gli utenti necessitano di un accesso per connettersi a SQL Server. È possibile creare un accesso basato su un'entità di Windows (come un utente di dominio o un gruppo di domini di Windows) o creare un accesso che non sia basato su un'entità di Windows (come un login di SQL Server).

Nota:
Per utilizzare l'autenticazione di SQL Server, il Motore di database deve utilizzare l'autenticazione in modalità mista. Per ulteriori informazioni, vedere Scegliere una modalità di autenticazione.

Come entità di sicurezza, è possibile concedere autorizzazioni agli accessi. Lo scopo di un accesso è l'intero Motore di database. Per connettersi a un database specifico sull'istanza di SQL Server, è necessario associare un account di accesso a un utente del database. Le autorizzazioni all'interno del database sono concesse e negate all'utente del database, non al login.Le autorizzazioni con lo scopo dell'intera istanza di SQL Server (ad esempio, autorizzazione CREATE ENDPOINT) possono essere concesse a un accesso.

+3

È un po 'più chiaro se metti un '>' all'inizio di ogni paragrafo nella citazione in modo che sia formattato come una citazione. – Sam

+1

Grazie per il tuo suggerimento Sam – ilmatte

+0

Questo è stato molto utile. Sebbene avessi impostato correttamente gli utenti e gli accessi, il sistema non è stato impostato per consentire l'autenticazione di accesso di SQL Server. Perché potrei creare login di SQL Server quando il server non permetterà loro di accedere è oltre me! –

15

Penso che ci sia davvero una buona MSDN blog post su questo argomento da Laurentiu Cristofor:

La prima cosa importante che deve essere capito su SQL Server sicurezza è che ci sono due ambiti di sicurezza coinvolte - il server e il database. Il dominio del server comprende più domini di database . Tutto il lavoro è fatto nel contesto di alcuni database, ma per ottenere il lavoro , è necessario prima avere accesso al server e quindi per avere accesso al database.

L'accesso al server è garantito tramite login. Esistono due principali categorie di login : accessi autenticati di SQL Server e accessi autenticati di Windows . Solitamente mi riferisco a questi utilizzando i nomi più corti di accessi SQL e accessi a Windows. Gli accessi autenticati da Windows possono essere accessi mappati a utenti Windows o accessi mappati ai gruppi di Windows . Pertanto, per potersi connettere al server, è necessario disporre dell'accesso a tramite uno di questi tipi o accessi: gli accessi consentono l'accesso all'area di autenticazione del server .

Tuttavia, gli accessi non sono sufficienti, poiché il lavoro viene solitamente eseguito in un database e i database sono aree separate. L'accesso ai database è garantito tramite gli utenti .

Gli utenti sono associati agli account di accesso e la mappatura è espressa dalla proprietà SID di account di accesso e utenti. Un login si collega a un utente in un database se i loro valori SID sono identici. A seconda del tipo di accesso, possiamo avere una classificazione degli utenti che riproduce la suddetta categorizzazione per i login; quindi, abbiamo utenti SQL e utenti Windows e l'ultima categoria è composta da utenti mappati agli accessi utente Windows e dagli utenti associati agli accessi ai gruppi di Windows.

Facciamo un passo indietro per una rapida panoramica: un account di accesso consente l'accesso al server e per ottenere ulteriore accesso a un database, un utente mappato al login deve esistere nel database.

that's the link per il post completo.

Problemi correlati