Tenemos una situación en la que los Desarrolladores no tienen ningún UPDATE
permiso, PERO trabajan con aplicaciones y ven cadenas de conexión -> conocen las contraseñas de algunas cuentas SQL (ejemplo SQLLogin1
) que tienen permisos de ACTUALIZACIÓN. Nuestras operaciones actualmente no son perfectas y, a veces, es necesario modificar los datos de producción (todavía no hay GUI para eso).
En lugar de contactar a DBA y pedirle que modifique los datos, el Desarrollador usaría (incorrectamente) una cuenta SQL SQLLogin1
(que tiene permiso para modificar los datos) y se conectaría a través de SQL Server Management Studio para modificar los datos él mismo.
DBA no puede cambiar la contraseña SQLLogin1
sin que el Desarrollador vea la nueva cadena de conexión y la nueva contraseña, ya que la cadena de conexión de la aplicación que utiliza SQLLogin1
es mantenida por el Desarrollador.
Pregunta:
¿Hay alguna forma de denegar el acceso al SQLLogin1
inicio de sesión de SQL, pero solo si se conecta a través de SSMS?
Al mismo tiempo, si se SQLLogin1
está conectando .Net SqlClient Data Provider
( program_name
en el sys.dm_exec_sessions
), se debe permitir iniciar sesión.
De esta manera, no queremos permitir que Developer se conecte a través de SSMS usando SQLLogin1
, mientras que la aplicación que está usando SQLLogin1
, todavía podría conectarse.