总结:如何限制sa登录Sybase ASE

日期: 2008-09-07 来源:TechTarget中国 英文

  解决思路如下:


  利用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) 
  &#101xec sp_remotesql ’local’, @cmd 
  end 
  go 
  sp_hidetext sp_killme 
  go 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • 趣解数据库市场竞争格局

    数据库咨询顾问Curt Monash对数据库技术的发展格局进行了趣味解读,包括如Oracle、IBM、Sybase鞥厂商之间的竞争关系。

  • SAP利用大数据处理能力,延伸实时数据平台

    SAP公司日前发布了针对Hadoop环境的高级支持与集成,其中包括“大数据”合作伙伴理事会和多个用户展示及基于SAP实时数据平台的相关“大数据”实施。

  • 主流内存数据库指南

    由于内部优化算法更简单,而且执行的CPU指令较少,所以内存数据的速度比基于磁盘的数据库快。访问内存数据可以提高响应速度。

  • 内存数据库巡礼之Sybase ASE

    这是我们关于内存数据库(IMDB)系列文章的第二部分。第一部分我们主要介绍了Oracle TimesTen,而这个部分将深入介绍Sybase ASE。