Come aggiungere un gruppo di utenti di Active Directory come account di accesso in SQL Server


108

Ho un'applicazione .net che si connette a SQL Server utilizzando l'autenticazione di Windows.

Non è possibile utilizzare l'autenticazione di SQL Server nell'applicazione. Abbiamo molti utenti di Active Directory per il nostro progetto. Quindi dobbiamo creare un account di accesso separato per ogni utente di Active Directory in SQL Server anziché creare un account di accesso separato per ogni utente AD, esiste un modo per utilizzare il gruppo di utenti di Active Directory in SQL Server?

Risposte:


162

In SQL Server Management Studio, vai a Object Explorer > (your server) > Security > Loginse fai clic con il pulsante destro del mouse New Login:

inserisci qui la descrizione dell'immagine

Quindi nella finestra di dialogo che si apre, scegli i tipi di oggetti che vuoi vedere ( Groupsè disabilitato per impostazione predefinita - selezionalo!) E scegli la posizione in cui vuoi cercare i tuoi oggetti (ad esempio usa Entire Directory) e poi trova il tuo gruppo AD .

inserisci qui la descrizione dell'immagine

Ora hai un normale accesso a SQL Server, proprio come quando ne crei uno per un singolo utente AD. Dai a quel nuovo login i permessi sui database di cui ha bisogno e il gioco è fatto!

Qualsiasi membro di quel gruppo AD può ora accedere a SQL Server e utilizzare il database.


C'è qualche possibilità di creare gruppi in mysql come sopra?
uzay95

2
Grazie per una risposta molto chiara con schermate annotate! Vorrei che tutte le risposte fossero così ...
NickG

1
@ NickG: ho usato il Paint.NET gratuito per caricare l'immagine e inserire i rettangoli rossi arrotondati
marc_s

7
Questo non funziona per me. Ho un gruppo Windows "DataAccess", di cui "UserX" è un membro. Ho creato un account di accesso per il gruppo DataAccess e impostato la mappatura dell'utente di accesso in modo che abbia accesso pubblico, datareader e datawriter su un database. L'utente non può accedere. Se aggiungo l'utente in modo specifico e assegno esattamente la stessa autorizzazione di mappatura, può accedere. Quando faccio clic su Proteggibili> Autorizzazioni effettive per il gruppo, viene visualizzato il messaggio "Impossibile eseguire come entità server poiché l'entità "GroupName" non viene chiusa, questo tipo di entità non può essere rappresentata o non si dispone dell'autorizzazione. "
Triynko

1
@Tim: il nome dell'utente - è ancora l'utente che accede - non è autorizzato direttamente - come utente - ma essendo membro di quel gruppo che ha i permessi
marc_s

21

Puoi usare T-SQL:

use master
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName

Lo uso come parte del ripristino dal server di produzione alla macchina di prova:

USE master
GO
ALTER DATABASE yourDbName SET OFFLINE WITH ROLLBACK IMMEDIATE
RESTORE DATABASE yourDbName FROM DISK = 'd:\DropBox\backup\myDB.bak'
ALTER DATABASE yourDbName SET ONLINE
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO

Sarà necessario utilizzare il nome localizzato dei servizi in caso di Windows tedesco o francese, vedere Come creare un account di accesso di SQL Server per un account di servizio su un Windows non inglese?


Nel caso in cui sia necessario impostare anche il login / principal a livello di database, ecco un'altra risposta che ho trovato utile dba.stackexchange.com/a/2578/60876
Agostino

Mi chiedo se questo possa essere utilizzato per concedere a un determinato gruppo di Active Directory l'accesso in lettura a un determinato schema: in pseudo sql CREATE LOGIN ... WITH DEFAULT_SCHEMAi punti ... devono fare riferimento a un determinato gruppo di annunci. Abbiamo diversi gruppi e vorremmo dare a un gruppo Active Directory l' accountantsaccesso allo schema ´A´ ma non allo schema ´B´ e ´C´. Allo stesso modo il gruppo "fatturazione" dovrebbe avere accesso solo allo schema "B". Come frontend stiamo usando l'accesso msft.
surfmuggle

0

Vai a SQL Server Management Studio, vai a Sicurezza, vai su Account di accesso e fai clic con il pulsante destro del mouse. Apparirà un menu con un pulsante che dice "Nuovo accesso". Lì sarai in grado di aggiungere utenti e / o gruppi da Active Directory ai tuoi "permessi" di SQL Server. Spero che questo ti aiuti


0

Ecco la mia osservazione. Ho creato un account di accesso (in sola lettura) per un account utente di group windows (AD) ma agisce in modo provocatorio in diversi server SQL. Nei server SQl che gli utenti non possono vedere i database ho aggiunto la definizione della vista controllata e ho anche dato la permeazione di esecuzione del database al database master per evitare l'errore 229. Non ho questo problema se creo un login per un utente.


Avrebbe potuto essere commentato piuttosto che usare una risposta. Ma non puoi ancora commentare. Quindi non haha ​​^^
finnmglas
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.