禁止指定软件链接SQL SERVER2008

Mr Dang 2014-08-21 02:14:30
怎么禁止指定软件链接SQL SERVER2008,现在知道软件名称,求教!
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr Dang 2014-08-21
  • 打赏
  • 举报
回复
@shmilywcd 我在服务器上不好尝试,是我下面写的这样子?

CREATE  TRIGGER connection_limit_trigger ON ALL SERVER
    WITH EXECUTE AS 'sa_Public'
    FOR LOGON
AS
    BEGIN
        IF ORIGINAL_LOGIN() = 'sa_Public' 
            AND ( SELECT TOP 1 program_name
                  FROM      sys.dm_exec_sessions
                  AND login_name = 'sa_Public'
                  ORDER BY  login_time DESC
                )  IN ( 'OOXX平台' ) 
            ROLLBACK ;
    END ;

这样子?
天-笑 2014-08-21
  • 打赏
  • 举报
回复
写一个数据库级触发器,给你个例子 你自己改改 你要做的是根据 sys.dm_exec_sessions 判断应用程序的名称 等,详细请看 sys.dm_exec_sessions

--限制IP访问数据库 
CREATE  TRIGGER connection_limit_trigger ON ALL SERVER
    WITH EXECUTE AS 'testuser'
    FOR LOGON
AS
    BEGIN
 
--使用testuser这个帐号的连接
        IF ORIGINAL_LOGIN() = 'testuser'
            AND
 
--以下是判断非本地的,你可以不使用
            ( SELECT    COUNT(*)
              FROM      sys.dm_exec_sessions
              WHERE     [host_name] <> 'localhost'
                        AND original_login_name = 'testuser'
            ) > 0
 
--以下代码中的IP是被允许的
            AND ( SELECT TOP 1
                            b.client_net_address
                  FROM      sys.dm_exec_sessions a
                            INNER JOIN master.sys.dm_exec_connections b ON a.session_id = b.session_id
                                                              AND a.login_name = 'testuser'
                  ORDER BY  login_time DESC
                ) NOT IN ( '192.100.168.149', '192.100.168.179' ) 
            ROLLBACK ;
    END ;

Mr Dang 2014-08-21
  • 打赏
  • 举报
回复
如果可以用触发器,这个触发器该怎么写?
Mr Dang 2014-08-21
  • 打赏
  • 举报
回复
@rockyljt 我自己也有很多软件用这个账号和用户,还有没有其他解决方案,比如触发器。
---涛声依旧--- 2014-08-21
  • 打赏
  • 举报
回复
帐号密码更改一下不行吗?

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧