sybase数据库登录限制问题

kx008yun 2016-01-25 04:37:10
根据上次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
...全文
289 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kx008yun 2016-05-24
  • 打赏
  • 举报
回复
换了个方式实现了
kx008yun 2016-01-28
  • 打赏
  • 举报
回复
试了,还是不生效,真不晓得是哪的问题
kx008yun 2016-01-26
  • 打赏
  • 举报
回复
你绑定给sa,条件@suid=suser_id('tusc99') 永远不成立啊。 这个为什么不成立呢,是if条件不支持suser_id的转换吗? 我改成(@suid=4 AND @program_name='isql') 成不? 刚试着把这个条件直接改成@program_name='isql',用isql还是能连接
kx008yun 2016-01-26
  • 打赏
  • 举报
回复
将存储过程绑定给指定的账号:tusc99 sp_modifylogin tusc99,"login script",sp_bindlogin 我昨天试着给tusc99账号绑定sp_bindlogin,总是提示sp_bindlogin is not valid,所以就绑定给sa,先试试sa的效果
  • 打赏
  • 举报
回复
必须 sp_modifylogin tusc99,"login script",sp_bindlogin 如果绑定给sa, 那么你在存储过程中suid=1
  • 打赏
  • 举报
回复
你绑定给sa,条件@suid=suser_id('tusc99') 永远不成立啊。
  • 打赏
  • 举报
回复
将存储过程绑定给指定的账号:tusc99 sp_modifylogin tusc99,"login script",sp_bindlogin
1. 安装指导 3 1.1 ASE安装一般指导 3 1.2 ASE11.9.2简易安装手册(for Unix) 4 安装概述 4 预下载任务: 5 下载 6 IBM AIX 6 HP UX 6 Digital Unix 6 预安装任务: 7 开始安装: 8 安装后任务: 10 1.3 ASE12.0 简易安装手册 10 1.3.1 SYBASE ASE12.0 For HP-9000/800 HP-UX安装指南 10 1.3.2 SYBASE ASE12.0 For SUN SOLARIS安装指南 13 1.3.3 SYBASE ASE12.0 For IBM RS/6000 AIX 安装指南 16 1.3.4 SYBASE ASE12.0 For DIGITAL UNIX 安装指南 19 1.4 SYBASE ASE12.0 For UNIX 双机切换设置指南(standby方式) 22 2. 技术专刊 24 2.1 关于Backup Server 24 2.2 Backup Server的名字 26 2.3 Sybase数据库设备 27 2.4 数据库选项(dboptions)的使用与管理 28 2.5 Index & Performance 31 2.6 SQL Server 事务日志 35 2.7 阀值管理(Threshold Management) 39 2.8 日常后备数据库 42 2.9 使用dump transaction with no_log的危险性 43 2.10 在ASE 11.9.2版中采用了行级加锁机制以提高性能 44 2.10.1 所支持的加锁机制 45 2.10.2 对小量数据的多次并发访问 48 2.10.4 死锁 52 2.11 DBCC 56 2.12 在SCO OPENSERVER 5上安装SQL SERVER 11.0.x 59 2.13 在SCO Unixware7.1上安装ASE11.92 62 2.14 ASE 11.9.2 for Linux安装步骤 64 3.常见问题 66 3.1 初级篇 66 3.1.1 在SQL Server中表大小是否有限制? 66 3.1.2 一旦客户突然退出或系统重启,SQL Server如何回滚事务? 66 3.1.3 为什么有时候数据库事务日志满了,使用Dump transaction with no-log仍不能截断日志? 66 3.1.4 即使表上没有建立索引,为什么BCP操作仍记日志? 66 3.1.5 如何生成bcp命令文件(以pubs2为例)? 66 3.1.6 如何后备数据量大于2GB的数据库 67 3.1.7 如何查找数据库启动失败原因 67 3.1.8 如何在NT、UNIX下启动关闭ASE 68 3.1.9 如何在Windows操作系统上安装Open Client12.0 69 3.1.10基本的ASE 数据库管理命令 70 3.1.11简单故障及排除方法 71 3.2 中级篇 71 3.2.1 IP地址改变后如何修改interfaces文件 71 3.2.2 如何解决数据库被挂起的问题 72 3.2.3 如何终止数据库恢复过程 74 3.2.4 如何删除坏的用户数据库?(以pubs2为例) 75 3.2.5 如何检查数据库中数据的一致性 77 3.2.6 如何更改SQL Server名称(在UNIX、OPENVMS平台上) 78 3.2.7 如何在HP平台BCP OUT超过2G的数据 79 3.3 高级篇 80 3.3.1如何配置SQL Server来做远程备份? 80 3.3.2 如何配置SQL Server 11,使得快速BCP具有更好的性能? 80 3.3.3如何将SQL/ASE SERVER移植到同种平台(相同操作系统)的系统上 81 3.3.4 如何做Rebuild Master 82 3.3.5 如何移植master设备 84 3.3.6 如何重建sybsystemprocs系统数据库 86 3.3.7 如何做 rebuild log 87 3.3.8 如何恢复master数据库 88 3.3.9 Replication Server 12.0如何支持字符集为eucgb的ASE数据库? 89 4. SYBASE培训服务 91 4.1 SYBASE培训概述 91 4.2 SYBASE主要数据库课程介绍 92

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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