synthroid taking instructions

Inicio > Base de datos > Bloquear una dirección IP para iniciar sesión en Sql Server

Bloquear una dirección IP para iniciar sesión en Sql Server

Jueves, 20 de noviembre de 2014 Dejar un comentario Ir a comentarios

Estábamos probando un escenario y quería bloquear la conexión al servidor SQL solo a determinadas direcciones IP. He aquí cómo se resolvió el problema utilizando un trigger de inicio de sesión

CREATE TRIGGER AllowLocalOnly
ON ALL SERVER
FOR LOGON
AS
BEGIN
    DECLARE @IP Varchar(500)
    SET @IP = EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(500)')
    IF @IP IN ('172.16.255.11', '172.20.254.1', '172.26.254.12')
    BEGIN
        Print 'Capture tu IP ' + @IP
        ROLLBACK TRANSACTION
    END
END
GO

Si el usuario intenta acceder a través de cualquiera de estas direcciones IP, el desencadenador de inicio de sesión se activará después de la fase de autenticación del registro, pero antes de que la sesión del usuario se establezca, y cancela la transacción. Esto restringirá la sesión para SQL Server.

Si hay un intento de inicio de sesión desde cualquiera de estas direcciones IP, se puede descubrir buscando en el registro de errores del servidor SQL Server algo similar a – ‘Capture tu 172.16.255.11′. Aunque no lo he probado, pero también se puede enviar un correo electrónico en vez de imprimir el error en el registro de errores.

Nota: los desencadenador de inicio de sesión sólo están disponibles en SQL Server 2005 Service Pack 2 en adelante.

Comparte y diviertete:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • BlinkList
  • Blogosphere
  • Live
  • Meneame
  • MSN Reporter
  • MySpace
  • RSS
  • Suggest to Techmeme via Twitter
  • Technorati
  • LinkedIn
  • email
  • FriendFeed
  • PDF
  • Reddit
  • Wikio IT
  • Add to favorites
  • blogmarks
  • Tefy

    Tengo una aplicacion en sql server y necesito que se conecten ciertas ips y eso lo hago correctamente peor tambien quiero q se conecten usuarios via web al servidor como podria hacerlo? es decir dar la ip del servidor web y q permita conectarse

  • Smgm

    Como Puedo hacer para no permitir que los usuarios se conecten por access solo quiero que lo hagan  por la aplicación . Tengo usuarios de Bases de datos.
     

  • http://jmacoe.com/blog jmacoe

    Saludos, puedes usar la función DB_NAME() o DB_ID() para identificar la base de datos que esta utilizando la conexión, te aconsejo que antes realices pruebas. Recuerda que no todas las formas de conexión usan directamente las DBs en la que trabajaran los datos.
    Recuerda decirnos como te fue con la implementación y por supuesto de recomendar nuestra pagina.

  • Alberto

     Buenas tardes, necesito bloquear conexiones por IP pero a bases de datos especificas. Esto es el usuario puede entrar a una base de datos donde tiene permisos, pero en caso de que llegara a conseguir un usuario para otra base de datos del mismo servidor necesito bloquearlo. Saludos

  • Pingback: Seguridad de los inicios de sesión en el Sql Server | El rincón de JMACOE

  • http://jmacoe.com/blog jmacoe

    Claro por supuesto prueba el siguiente script:

    CREATE TRIGGER connection_lock_trigger
    ON ALL SERVER
    FOR LOGON
    AS
    BEGIN
    IF HOST_NAME()= ‘NombredelHost’
    ROLLBACK;
    END;

    Este script bloqueara todo los intentos de conexion que provengan desde hosts que tengan nombre ‘NombredelHost’

  • Bulachi

    Se podria hacer tambien por el hostname?

  • Pingback: Bitacoras.com

Top Footer