none
SQL Server 2012 no conectar al management studio RRS feed

  • Pregunta

  • Buen día.

    Necesito tener un usuario de SQL Server que pueda conectarse de una aplicación, pero si intenta ingresar desde el management studio  con el mismo usuario y clave no pueda hacerlo.

    Gracias.


    Rodrigo Araya

    lunes, 31 de julio de 2017 2:25

Respuestas

  • Porque en ocasiones es necesario entrar desde un manejador y si bloqueas SSMS no le impiden usar algo como Toad, DB Artisan, etc. El control y la seguridad y que puede o no hacer un usuario debería estar en sus mismos permisos de usuario no deberías de intentar meter este tipo de candados.

    Es mucho esfuerzo mantener esto (en especial si alguien mas llega) y puede ser burlado hasta por un sql command. Te lo digo porque una vez hice una auditoría y tenían algo asi implementado.

    • Propuesto como respuesta Moderador M miércoles, 2 de agosto de 2017 18:47
    • Marcado como respuesta Moderador M viernes, 4 de agosto de 2017 16:57
    martes, 1 de agosto de 2017 4:12

Todas las respuestas

  • Hola.

    Creo, salvo que otro forista opine lo contrario, que eso no es posible. Es decir, mi entendimiento es que si un usuario tiene conexión hacia una BD, dicha conexión se permite desde la aplicación que lo requiere o incluso desde el SSMS.

    Lo que se puede hacer es que si se conecta por SSMS a la BD que se le asignó por defecto, no pueda realizar alguna operación T-SQL como SELECT, por ejemplo. Esto se logra mediante el uso de Application Roles.

    Alguna vez intenté usar el comando DENY VIEW ANY DATABASE para dicho login en particular, en donde, el login se conectaba mediante SSMS, pero no veía ninguna base de datos. Sin embargo, si abrían una ventana de consulta mediante "New Query" y escribían "USE <Base de Datos>" pues podían usar la base de datos.

    Particularmente, con el escenario anterior, aprendí a conceder o negar los permisos particulares sobre una base de datos con roles de aplicación y que dicho usuario o usuarios tuviesen la seguridad necesaria para que sobre dicha base de datos realicen lo requerido e incluso, habilitar temas como AUDIT y trazas en la misma BD para que quede registro de quien hizo qué y cuándo, acceda dicho usuario por la aplicación o por SSMS o SQLCMD, incluso.

    Se que no es la respuesta buscada, pero de nuevo, salvo que alguien más tenga otra opinión, no solo no se puede sino que el esfuerzo debe estar orientado hacia proteger lo que el usuario hace en su base de datos.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    lunes, 31 de julio de 2017 12:47
  • Se puede, no lo recomiendo realmente pero se puede, como las DMV ven la conexión desde que host y qué aplicación se conecta, un trigger que rechace la coneccion si entra el SSMS puede realizar esta acción.

    Aqui encontraras un ejemplo similar a esto que pides no lo recomiendo pero depende mucho de las aplicaciones que ustedes tengan y sus politicas.

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/b88de69b-3728-4465-92df-77a97302aefa/restricting-users-to-login-to-database-using-ssms-but-let-them-login-using-the-application-only?forum=sqlsecurity

    • Propuesto como respuesta Moderador M lunes, 31 de julio de 2017 16:02
    lunes, 31 de julio de 2017 15:12
  • Gracias por la respuesta, pero me puedes indicar por que no lo recomiendas. 

    Saludos.

    Rodrigo Araya

    lunes, 31 de julio de 2017 15:29
  • Tal como te menciona el compañero, debes revisar las opciones que te deja el perfil y rol del usuario. Nunca he probado entrar con una cuenta limitada pero supongo que solo le permite hacer lo que tenga definido el perfil.
    lunes, 31 de julio de 2017 23:00
  • Porque en ocasiones es necesario entrar desde un manejador y si bloqueas SSMS no le impiden usar algo como Toad, DB Artisan, etc. El control y la seguridad y que puede o no hacer un usuario debería estar en sus mismos permisos de usuario no deberías de intentar meter este tipo de candados.

    Es mucho esfuerzo mantener esto (en especial si alguien mas llega) y puede ser burlado hasta por un sql command. Te lo digo porque una vez hice una auditoría y tenían algo asi implementado.

    • Propuesto como respuesta Moderador M miércoles, 2 de agosto de 2017 18:47
    • Marcado como respuesta Moderador M viernes, 4 de agosto de 2017 16:57
    martes, 1 de agosto de 2017 4:12