none
sql server2005 如何设定允许访问的ip列表? RRS feed

答案

  •  

    另外, 如果楼主用的是 SQL Server 2005 sp2 或者之后的版本, 则另一个限制可访问SQL Server 客户端IP的方法是使用登录触发器

    使用类似下面的T-SQL建立触发器, 即可限制指定的IP地址访问(你可以把要排除或者允许的IP放在一张表中, 这样直接查表, 而不是在触发器代码中硬编码)

    Code Snippet

    CREATE TRIGGER connection_limit_trigger
    ON ALL SERVER
    WITH
     EXECUTE as 'sa'
    FOR LOGON
    AS
    BEGIN
     DECLARE
      @event xml
     SELECT
      @event = EVENTDATA()
     
     IF @event.value('(//ClientHost)[1]', 'sysname') IN('你要排除的ip地址1', '你要排除的ip地址2')
      ROLLBACK
    END;

     

     

     

    2008年8月14日 3:16

全部回复

  • ip列表?
    --------------
    IP連接設置:
    配置工具->sql
    server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine
    节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了.

    如果是限制訊問:
    SQL自身沒有限制指定IP訪問,在windows防火牆里,設置1433端口,連接範圍設置訪問的IP地址
    2008年8月14日 1:44
    版主
  •  

    如果楼主所说的IP列表, 是指允许的客户端IP列表, 则这个一般在防火墙中配置, 而不是在SQL Server中配置

     

    在 sql server  中能限制的是允许从服务器的那个ip插入的客户端能够连接到 sql server

     

     

     

    2008年8月14日 3:01
  •  

    另外, 如果楼主用的是 SQL Server 2005 sp2 或者之后的版本, 则另一个限制可访问SQL Server 客户端IP的方法是使用登录触发器

    使用类似下面的T-SQL建立触发器, 即可限制指定的IP地址访问(你可以把要排除或者允许的IP放在一张表中, 这样直接查表, 而不是在触发器代码中硬编码)

    Code Snippet

    CREATE TRIGGER connection_limit_trigger
    ON ALL SERVER
    WITH
     EXECUTE as 'sa'
    FOR LOGON
    AS
    BEGIN
     DECLARE
      @event xml
     SELECT
      @event = EVENTDATA()
     
     IF @event.value('(//ClientHost)[1]', 'sysname') IN('你要排除的ip地址1', '你要排除的ip地址2')
      ROLLBACK
    END;

     

     

     

    2008年8月14日 3:16