信息产业培训网
[当前位置]:首页--技术专区--数据库--SybaseRSS订阅按钮

个人经验总结:如何限制sa登录Sybase ASE

http://www.miiceic.org.cn   2008-7-31 9:40:47   中程在线   浏览数:
关键字:经验 限制sa Sybase ASE

  需求:必须限制 sa 登录sybase ASE

  解决思路如下:

  利用sybase ASE的特性提供的存储过程 sp_modifylogin,对登录的合法性进行验证。

  -- 先新创建一个权限足够高的用户,将来当服务器有问题时,好用来恢复sa

  -- 接下来将sa的login script绑定

  use master

  go

  drop procedure sp_bindlogin

  go

  -- 存储过程名字弄个像系统的一样

  create procedure sp_bindlogin

  as

  begin

  declare @hostname varchar(100)

  declare @program_name varchar(100)

  declare @ipaddr varchar(100)

  declare @new datetime

  select @hostname = hostname,

  @program_name = program_name,

  @ipaddr = ipaddr

  from master..sysprocesses

  where spid = @@spid

  -- 登录机器限定

  if @hostname != '机器名'

  begin

  shutdown with nowait

  end

  -- 登录机器IP限定

  if @ipaddr != '机器IP'

  begin

  shutdown with nowait

  end

  -- 登录应用程序限定

  if @program_name in ('SQL_Advantage', 'isql')

  begin

  shutdown with nowait

  end

  select @new = getdate()

  -- 登录时间限定

  if @new >= '20080808'

  begin

  shutdown with nowait

  end

  end

  go

  sp_hidetext sp_bindlogin

  go

  sp_modifylogin sa, 'login script', sp_bindlogin

  go

  经过以上处理,sa只能在本机,并且不能使用 isql 、sqladv ,在 20080808 之前 登录数据库

  这里的逻辑是可以自由编写的。

  这里的合法性验证不通过的处理方法是 shutdown 。

  可以把 shutdown 换成以下存储过程。 这样就杀掉了自己。不会影响服务,只是需要做一些额外的配置。

  drop procedure sp_killme

  go

  create procedure sp_killme

  as

  begin

  declare @cmd varchar(100)

  select @cmd = 'kill ' + convert(varchar(20), @@spid)

  exec sp_remotesql 'local', @cmd

  end

  go

  sp_hidetext sp_killme

  go

来源:CCID
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网中电华信阿里西西JAVA爱好者北京英才网全球大学查询网
    中国人的网站导航中国电脑论坛信息产业部新浪科技搜狐IT信息产业部电子教育与考试中心
    IT世界网软件项目交易网中国软件交易网国信培训网亚远景科技....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved