请问如何限制外部用户登陆sqlserver

gmlxf 2003-10-10 08:38:33
我公司的服务器装的sqlserver上,如果有一个用户名:a,密码:b。那么当我知道了服务器上的ip,a,b后就可以远程登陆到上面了,现在有一个问题就是如何设置这个用户名只有我的某一个客户可以登陆,而其他的即使知道用户名,密码后也仍然登陆不了。
比如说我要让我家里可以上公司的sqlserver。
而在其他(除公司)地方一概不能够登陆公司的sqlserver。

请问有什么办法验证?或者是授权等?
...全文
228 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
eddiezhuo 2003-10-10
  • 打赏
  • 举报
回复
你可以在防火墙上过滤不允许访问的IP
如果你还觉得不够安全,就用WIN2000的VPN加域验证
CrazyFor 2003-10-10
  • 打赏
  • 举报
回复
服务器上做IP限制.
zhbname 2003-10-10
  • 打赏
  • 举报
回复
up
pepos 2003-10-10
  • 打赏
  • 举报
回复
转吧!
gmlxf 2003-10-10
  • 打赏
  • 举报
回复
恩,看来要用其他技术了。
zjcxc 元老 2003-10-10
  • 打赏
  • 举报
回复
这个已经不是SQL可以做到的事了

建议转版吧.
gmlxf 2003-10-10
  • 打赏
  • 举报
回复
还是没有解决。。。。等待啊。
gmlxf 2003-10-10
  • 打赏
  • 举报
回复
企业管理器-->右键你的实例(就是那个有绿色图标的)-->属性-->安全-->改为sql与window混合
已经是这样的了

当我在家里登陆服务器的时候,我要让服务器来得到我的电脑的主机名与ip地址,并且识别是不是可以登陆,如果不行就登陆不了。
declare @ip varchar(20)
declare @str varchar(100)
--set @str='PING '+Host_Name()
create table #tmp(aa varchar(200))
insert #tmp exec master..xp_cmdshell 'ping tsql'
--insert #tmp exec master..xp_cmdshell @str
select top 1 @ip = replace(left(aa,charindex(':',aa)-1),'Reply from ','')
from #tmp where aa like 'reply from %:%'
drop table #tmp
select @ip
这段代码可以让服务器ping tsq1,但是我家里的tsql是多少呢?而且是内网,怎么办啊?
gmlxf 2003-10-10
  • 打赏
  • 举报
回复
1:不让别人知道用户和密码
-----
首先这点因为已经不能够修改了,牵涉到好多好多的系统连接文件,所以不能够修改。

用sql server认证
建立相应的登陆用户名和密码,并为他分配一定的权限即可
其他人,根本就不可能让他知道密码
-----
这样做是可以,但是我的主要的目的是为了防止有人知道用户名密码以后登陆而不是我自己访问。
pengdali 2003-10-10
  • 打赏
  • 举报
回复
企业管理器-->右键你的实例(就是那个有绿色图标的)-->属性-->安全-->改为sql与window混合
伍子V5 2003-10-10
  • 打赏
  • 举报
回复
用sql server认证
建立相应的登陆用户名和密码,并为他分配一定的权限即可
其他人,根本就不可能让他知道密码
txlicenhe 2003-10-10
  • 打赏
  • 举报
回复
1:不让别人知道用户和密码
2:在登录时检测客户端电脑名或IP
a: 电脑名 host_name()
b: IP
http://expert.csdn.net/Expert/topic/2333/2333320.xml?temp=3.585452E-02
/************* IP **************/
declare @ip varchar(20),@hst varchar(20),@sql varchar(100)
declare @str varchar(100)
set @str='PING '+Host_Name()
create table #tmp(aa varchar(200))
--insert #tmp exec master..xp_cmdshell 'ping tsql'
insert #tmp exec master..xp_cmdshell @str
select top 1 @ip = replace(left(aa,charindex(':',aa)-1),'Reply from ','')
from #tmp where aa like 'reply from %:%'
drop table #tmp
select @ip

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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