Abbiamo una situazione in cui gli sviluppatori non dispongono di UPDATE
autorizzazioni, MA lavorano con le applicazioni e vedono le stringhe di connessione -> conoscono le password di alcuni account SQL (esempio SQLLogin1
) che dispongono di autorizzazioni UPDATE. Le nostre operazioni al momento non sono perfette e, a volte, i dati di produzione devono essere modificati (non è ancora disponibile una GUI).
Invece di contattare DBA e chiedergli di modificare i dati, lo sviluppatore dovrebbe (impropriamente) utilizzare l'account SQL SQLLogin1
(che dispone dell'autorizzazione per modificare i dati) e connettersi tramite SQL Server Management Studio per modificare i dati.
DBA non può modificare la password SQLLogin1
senza che Developer visualizzi la nuova stringa di connessione e la nuova password, poiché la stringa di connessione dell'applicazione che utilizza SQLLogin1
viene gestita da Developer.
Domanda:
C'è un modo per negare l'accesso al SQLLogin1
login SQL, ma solo se si sta connettendo tramite SSMS?
Allo stesso tempo, se si SQLLogin1
sta connettendo tramite .Net SqlClient Data Provider
( program_name
in sys.dm_exec_sessions
), deve essere consentito il login.
In questo modo non vogliamo consentire allo sviluppatore di connettersi tramite SSMS utilizzando SQLLogin1
, mentre l'applicazione che sta utilizzando SQLLogin1
, sarebbe comunque in grado di connettersi.