需求:必须限制 sa 登录sybase ASE
利用sybase ASE的特性提供的存储过程 sp_modifylogin,对登录的合法性进行验证。
use master go
go
create procedure sp_bindlogin as begin declare @hostname varchar(100) declare @program_name varchar(100) declare @ipaddr varchar(100) declare @new datetime
@program_name = program_name, @ipaddr = ipaddr from master..sysprocesses where spid = @@spid
if @hostname != '机器名' begin shutdown with nowait end
if @ipaddr != '机器IP' begin shutdown with nowait end
if @program_name in ('SQL_Advantage', 'isql') begin shutdown with nowait end
if @new >= '20080808' begin shutdown with nowait end end go
go
go
这里的逻辑是可以自由编写的。
可以把 shutdown 换成以下存储过程。 这样就杀掉了自己。不会影响服务,只是需要做一些额外的配置。
go
as begin declare @cmd varchar(100) select @cmd = 'kill ' + convert(varchar(20), @@spid)
end go
go |