sybase数据库登录限制问题
根据上次andkylee大神提供的根据IP限制登录的回答,小改了下,想根据sysprocesses里的用户名suid和program_name限制所有用isql或sqldbx的用户tusc99,连接数据库,但是试了好多次,还是不行。请大神们帮忙给看看:)
sp_addserver local,null,@@servername
--使用sp_remotesql远程调用服务器杀掉自身连接
if object_id('sp_killme') is not null
drop proc 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_bindlogin
--调用存储过程sp_killme利用远程服务器;存储过程sp_killme也可以用:select syb_quit()替代。
IF OBJECT_ID ('dbo.sp_bindlogin') IS NOT NULL
DROP PROCEDURE dbo.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
DECLARE @suid int
select @hostname = hostname,@program_name = program_name, @ipaddr = ipaddr,@suid=suid from master..sysprocesses where suid=suser_id('tusc99') and (program_name='SqlDbx[administrator]' or program_name ='isql') and spid=@@spid
SELECT @program_name,@suid
if (@suid=suser_id('tusc99') AND @program_name='isql')
begin
--select syb_quit()
exec sp_killme
end
end
GO
--指定登录的绑定login script为:sp_bindlogin。
sp_modifylogin sa,"login script",sp_bindlogin
go