解决方案 »

  1.   

    http://www.cnblogs.com/gaizai/archive/2013/05/23/3095145.html这里的Script 2参考一下
      

  2.   

    SELECT 
    a.[session_id],a.[login_time],a.[host_name],
    a.[original_login_name],b.[client_net_address]
    FROM MASTER.sys.dm_exec_sessions a 
    INNER JOIN MASTER.sys.dm_exec_connections b 
    ON a.session_id=b.session_id这里的host_name也可以获得机器名,做个黑名单即可
      

  3.   

    早看过了!达不到要求。我需要通过机器名判断,网上都是说的IP判断的,
    如果是进来了数据库能自动判断机器名对比,如果不是该机器名或mac地址就自动结束会话也行
      

  4.   

    试试这个,不过注意要小心一点,别自己都登录不上了create table myTest
    (LogonTime datetime,
    LoginName varchar(50),
    ClientHost varchar(50),
    LoginType varchar(50)
    )
     
    create TRIGGER myTest_LogonTrigger
    ON ALL SERVER WITH EXECUTE AS 'sa'
    FOR LOGON
    AS
    BEGIN
           declare @LogonTriggerData xml,
                         @EventTime datetime,
                         @LoginName varchar(50),
                         @HostName varchar(50),
                         @LoginType varchar(50)
           set @LogonTriggerData = eventdata()
     
          
           set @EventTime = @LogonTriggerData.value('(/EVENT_INSTANCE/PostTime)[1]', 'datetime')
           set @LoginName = @LogonTriggerData.value('(/EVENT_INSTANCE/LoginName)[1]', 'varchar(50)')
           set @HostName = @LogonTriggerData.value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(50)')
           set @LoginType = @LogonTriggerData.value('(/EVENT_INSTANCE/LoginType)[1]', 'varchar(50)')
     
           if @LoginType = 'SQL Login' and @HostName not in ('<comma separated list of hostname>')
                  and @LoginName not in ('<comma separated list of SQL logins>')
                  insert into master..myTest values (@EventTime, @LoginName, @HostName, @LoginType)
    end
    go
      

  5.   

    他这里获得得还是IP地址,没有获取到机器名我这里是外网服务器,不希望其他电脑登陆,只希望内网机器能连,但是内网机器IP是动态的,所以控制IP没用,只能控制机器名或者其他机器信息
      

  6.   

    那你用windows身份验证就可以拉,只把域用户加进去。
      

  7.   

    内外网没有域,外网是单独的IP。内网是动态IP,我是想做到在外网服务器自己都不能登录,只能在内网机器才能连上他这里获得得还是IP地址,没有获取到机器名我这里是外网服务器,不希望其他电脑登陆,只希望内网机器能连,但是内网机器IP是动态的,所以控制IP没用,只能控制机器名或者其他机器信息
      

  8.   

    搞VPN。。我这边都是VPN环境,端口同样不对外,而且有复制和镜像
      

  9.   

    sql server要工作,在别人能正常访问,那些用户是是必须登录的,比如WORKGROUP\机器名$这个用户是不是必须会登录sql才会工作?
      

  10.   

    对了,如果因为登陆触发器造成无法登陆了,administrator账号也禁用了,也没停留在查询界面,还有其他办法可以进入数据库吗??? 我现在没有发生这种情况,我就是问下!!!
      

  11.   

    2008有tde功能,但是慎用,另外别把自己都登录不了
      

  12.   

    加密会把自己弄得登录不了???是登陆触发器吧??? 登陆触发器我会先在本机测试好在放服务器上禁用administrator,没事最起码数据不会丢,有热备份
      

  13.   

    在问个问题,sql server能不能控制服务无法停止,或者停止后马上自动启动,只有进入sql server后做某种设置才能停止的操作???