当前位置:首页 » 编程语言 » sqlserver获取ip
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserver获取ip

发布时间: 2022-09-03 08:00:13

sql server数据库ip地址怎么查

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_getlinkinfo]')andOBJECTPROPERTY(id,N'IsProcere')=1)dropprocere[dbo].[p_getlinkinfo]GO/*--获取连接SQL服务器的信息所有连接本机的:操作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名--邹建2003.11(引用请保留此信息)--*//*--调用示例--显示所有本机的连接信息execp_getlinkinfo--显示所有本机的连接信息,包含ip地址execp_getlinkinfo@includeip=1--显示连接指定数据库的信息execp_getlinkinfo'客户资料'--*/createprocp_getlinkinfo@dbnamesysname=null,--要查询的数据库名,默认查询所有数据库的连接信息@includeipbit=0--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制asdeclare@dbidintset@dbid=db_id(@dbname)createtable#tb(idintidentity(1,1),dbnamesysname,hostnamenchar(128),loginnamenchar(128),net_addressnchar(12),net_ipnvarchar(15),prog_namenchar(128))insertinto#tb(hostname,dbname,net_address,loginname,prog_name)selectdistincthostname,db_name(dbid),net_address,loginame,program_namefrommaster..sysprocesseswherehostname<>''and(@dbidisnullordbid=@dbid)if@includeip=0gotolb_show--如果不显示IP地址,就直接显示declare@sqlvarchar(500),@hostnamenchar(128),@idintcreatetable#ip(hostnamenchar(128),avarchar(200))#tbopentbfetchnextfromtbinto@hostnamewhile@@fetch_status=0beginset@sql='ping'+@hostname+'-a-n1-l1'insert#ip(a)execmaster..xp_cmdshell@sqlupdate#ipsethostname=@@hostnameenpdate#tbsetnet_ip=left(a,patindex('%:%',a)-1)from#tnnerjoin(selecthostname,a=substring(a,patindex('Pingstatisticsfor%:%',a)+20,20)from#ipwherealike'Pingstatisticsfor%:%')bona.hostname=b.hostnamelb_show:selectid,数据库名=dbname,客户机名=hostname,用户名=loginname,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_namefrom#tbgo


–2000SQLcode
selectspid,hostname,net_addressfromsys.sysprocesses
–2005SQLcode
selectsession_id,client_net_address,local_net_addressfrom
sys.dm_exec_connections

❷ SQL SERVER 写一个触发器 如果该表被修改则获取修改表的计算机名和IP地址

在SQLServer上得到客户端信息(操作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名)
createprocp_getlinkinfo
@dbnamesysname=null,--要查询的数据库名,默认查询所有数据库的连接信息
@includeipbit=0--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制
as
declare@dbidint
set@dbid=db_id(@dbname)
createtable#tb(idintidentity(1,1),dbnamesysname,hostnamenchar(128),loginnamenchar(128),net_addressnchar(12),net_ipnvarchar(15),prog_namenchar(128))
insertinto#tb(hostname,dbname,net_address,loginname,prog_name)
selectdistincthostname,db_name(dbid),net_address,loginame,program_namefrommaster..sysprocesses
wherehostname<>''and(@dbidisnullor)
if@includeip=0gotolb_show--如果不显示IP地址,就直接显示
declare@sqlvarchar(500),@hostnamenchar(128),@idint
createtable#ip(hostnamenchar(128),avarchar(200))
#tb
opentb
fetchnextfromtbinto@hostname
while@@fetch_status=0
begin
set@sql='ping'+@hostname+'-a-n1-l1'
insert#ip(a)execmaster..xp_cmdshell@sql
update#ipsetwherehostnameisnull
fetchnextfromtbinto@hostname
end
update#tbsetnet_ip=left(a,patindex('%:%',a)-1)
from#tnnerjoin(
selecthostname,a=substring(a,patindex('Pingstatisticsfor%:%',a)+20,20)from#ip
wherealike'Pingstatisticsfor%:%')bona.hostname=b.hostname
lb_show:
selectid,数据库名=dbname,客户机名=hostname,用户名=loginname
,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_namefrom#tb
GO

//显示所有本机的连接信息:
execp_getlinkinfo
//显示所有本机的连接信息,包含ip地址:
execp_getlinkinfo@includeip=1
//显示连接指定数据库的信息:
execp_getlinkinfo@dbname=表名,@includeip=1

❸ sqlserver如何从外网通过IP连接

一台服务器上已经安装了sql
server
2005,一切正常。最近由于要用到表类型参数,需要安装sqlserver
2008,可是装好后却连不上。本机通过机器名可以连上。
后来发现需要改一下端口。我不知到这是不是唯一的办法,希望高手指正。
打开ConfigurationManager,找到TCP/IP,右击点属性,选择IPAddress到最后TCPAll,
把TCPPort改为你自己的port。
然后在连接的时候需要加上port,类似这样10.10.10.10sqlserver2008,1400,就可以连接成功了。连接字符串也要加上端口号。
最后,注意把端口号添加到防火墙例外。

❹ SQLserver怎么获取当前操作数据库的计算机名字

在SQLServer上得到客户端信息(操作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名)
create proc p_getlinkinfo
@dbname sysname=null,--要查询的数据库名,默认查询所有数据库的连接信息
@includeip bit=0--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制
as
declare @dbid int
set @dbid=db_id(@dbname)
create table #tb(id int identity(1,1),dbname sysname,hostname nchar(128),loginname nchar(128),net_address nchar(12),net_ip nvarchar(15),prog_name nchar(128))
insert into #tb(hostname,dbname,net_address,loginname,prog_name)
select distinct hostname,db_name(dbid),net_address,loginame,program_name from master..sysprocesses
where hostname<>'' and (@dbid is null or )
if @includeip=0 goto lb_show --如果不显示IP地址,就直接显示
declare @sql varchar(500),@hostname nchar(128),@id int
create table #ip(hostname nchar(128),a varchar(200))
declare tb cursor local for select distinct hostname from #tb
open tb
fetch next from tb into @hostname
while @@fetch_status=0
begin
set @sql='ping '+@hostname+' -a -n 1 -l 1'
insert #ip(a) exec master..xp_cmdshell @sql
update #ip set where hostname is null
fetch next from tb into @hostname
end
update #tb set net_ip=left(a,patindex('%:%',a)-1)
from #tb a inner join (
select hostname,a=substring(a,patindex('Ping statistics for %:%',a)+20,20) from #ip
where a like 'Ping statistics for %:%') b on a.hostname=b.hostname
lb_show:
select id,数据库名=dbname,客户机名=hostname,用户名=loginname
,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_name from #tb
GO

//显示所有本机的连接信息:
exec p_getlinkinfo
//显示所有本机的连接信息,包含ip地址:
exec p_getlinkinfo @includeip=1
//显示连接指定数据库的信息:
exec p_getlinkinfo @dbname=表名,@includeip=1

❺ 如何查询SQL Server服务管理器的IP

c# 远程连接数据库SQL

远程连接有点复杂,首先要保证客户端与SQL服务器连接

步骤:
一 看ping 服务器IP能否ping通。
这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查 看配

置,当然得确保远程sql server 2000服务器的IP拼写正确。

二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
如telnet 202.114.100.100 1433
通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这

一步会出问题。通常的提示是“……无法打开连接,连接 失败"。
如果这一步有问题,应该检查以下选项。
1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协检查方法是,在服

务器上打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里

是否有tcp/ip协议,如果没有,则启用它。
3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的

tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框 没有勾上。
事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须

与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾 选,则意味着客户端无法通过枚

举服务器来看到这台服务器,起到了保护的作用, 但不影响连接,但是Tcp/ip协议的默认端口将被

隐式修改为2433,在客户端连接 时必须作相应的改变。
4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,

通常在测试时可以直接关掉windows防火墙(其他的防火墙也 关掉最好)。
5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检

查方法是在服务器的dos或命令行下面输入
netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening

的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分

析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。
如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一 闪之后光标在左上

角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析 器连接了。

三 检查客户端设置
程序->Microsoft SQL Server -> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客 户端

tcp/ip协议启用,并且默认端口为1433(或其他端口,与服 务器端保持一致就行)。

四 在企业管理器里或查询那分析器连接测试
企业管理器->右键SQlserver组->新建sqlserver注册->下一步->写入远程IP-> 下一步->选Sqlserver登陆-

>下一步->写入登陆名与密码(sa,password)->下一 步->下一步->完成 查询分析器->文件->连接->写

入远程IP->写入登录名和密码(sa,password)->确 定
通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置

是4秒,而查询分析器是15秒。
修改默认连接超时的方法:
企业管理器->工具->选项->在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡->连接设

置->在登录超时(秒) 后面的框里输入一个较大的数字
查询分析器->工具->选项->连接->在登录超时(秒) 后面的框里输入一个较大的数 字
通常就可以连通了,如果提示错误,则进入下一步。

五 错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因 此用户无法使 用

SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:
1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。
2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。
3 在"身份验证"下,选择"SQL Server和 Windows "。
4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务, net start mssqlserver启

动服务,也是一种快捷的方法)。

附注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的

协议有这个),默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是完全

不同的协议)

//如果是在远程连接sql2000,采用下面连接字符串

// string source = "database=Northwind;Server=192.168.1.181,1433;User ID=sa;Password=sa;Persist Security Info=True";

❻ sqlserver如何ip

sqlserver是数据库。不存在网卡配置,所以不存在IP的。
IP是你的服务器网卡哪里设置的。当然sqlserver管理工具也能设置是否根据ip地址授权。

❼ 怎么查看SQL的IP地址还有怎么修改SQL的IP地址啊

你好,很高兴能回答你的问题。

你的问题其实用SQLSERVER都有一个自带的工具Sqlserverconfigurationmanager.就可以解决。

下面我以sqlserver2008为例介绍操作方法。

1,首先你电脑上安装了SQLServer2008.然后打开开始菜单-->所有程序-->MicrosoftSQLServer2008-->ConfigurationTools-->SQLServerConfigurationManager

5,如果有不明白可以追问。

❽ 如何查看远程链接sqlserver的ip地址

可以使用存储过程和目录视图来管理链接服务器定义:

# 通过执行 sp_addlinkedserver 创建链接服务器定义。
# 通过对 sys.servers 系统目录视图执行查询,查看有关在 SQL Server
的特定实例中定义的链接服务器的信息。
# 通过执行 sp_dropserver 删除链接服务器定义。还可以使用此存储过程删除远程服务器。

至于 sys.servers 视图的定义,可以查看 SQLServer 的帮助信息,内容比较多,还带表格,就不贴在这里了

❾ SQLserver怎么获取当前操作数据库的计算机名字

在SQLServer上得到客户端信息(操作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名)
create proc p_getlinkinfo
@dbname sysname=null,--要查询的数据库名,默认查询所有数据库的连接信息
@includeip bit=0--是否显示IP地址,因为查询IP地址比较费时,所以增加此控制
as
declare @dbid int
set @dbid=db_id(@dbname)
create table #tb(id int identity(1,1),dbname sysname,hostname nchar(128),loginname nchar(128),net_address nchar(12),net_ip nvarchar(15),prog_name nchar(128))
insert into #tb(hostname,dbname,net_address,loginname,prog_name)
select distinct hostname,db_name(dbid),net_address,loginame,program_name from master..sysprocesses
where hostname<>'' and (@dbid is null or )
if @includeip=0 goto lb_show --如果不显示IP地址,就直接显示
declare @sql varchar(500),@hostname nchar(128),@id int
create table #ip(hostname nchar(128),a varchar(200))
declare tb cursor local for select distinct hostname from #tb
open tb
fetch next from tb into @hostname
while @@fetch_status=0
begin
set @sql='ping '+@hostname+' -a -n 1 -l 1'
insert #ip(a) exec master..xp_cmdshell @sql
update #ip set where hostname is null
fetch next from tb into @hostname
end
update #tb set net_ip=left(a,patindex('%:%',a)-1)
from #tb a inner join (
select hostname,a=substring(a,patindex('Ping statistics for %:%',a)+20,20) from #ip
where a like 'Ping statistics for %:%') b on a.hostname=b.hostname
lb_show:
select id,数据库名=dbname,客户机名=hostname,用户名=loginname
,网卡物理地址=net_address,IP地址=net_ip,应用程序名称=prog_name from #tb
GO

//显示所有本机的连接信息:
exec p_getlinkinfo
//显示所有本机的连接信息,包含ip地址:
exec p_getlinkinfo @includeip=1
//显示连接指定数据库的信息:
exec p_getlinkinfo @dbname=表名,@includeip=1

❿ 如何用sql命令获取ip地址

在一些需求中,可能我们需要知道连接到SqlServer的前端程序的一些系统信息,比如前端连接的计算机名称,IP地址,什么时候开始请求连接,什么时候结束连接等信息。如果你对SqlServer的系统函数或视图不太了解,这个功能看起来好像比较复杂,而实际上, SqlServer的动态管理视图已经给我们提供了这些信息,下面我们来看两个动态管理视图。1、Sys.dm_exec_Sessions 这个视图中提供了所有连接sqlserver的客户端的一些信息,下面是Sys.dm_exec_Sessions返回的列:列名数据类型 说明Session_idsmallint标识与每个活动主连接关联的会话。login_timedatetime建立会话的时间。host_namenvarchar(128)与会话关联的主机。program_namenvarchar(128)与会话关联的程序。host_process_idint与会话关联的进程 ID。client_versionint客户端连接到服务器所用的接口版本。client_interface_namenvarchar(32)客户端连接到服务器所用的接口名称。security_idvarbinary(85)与登录名关联的 Microsoft Windows 安全 ID。login_namenvarchar(128)与会话关联的 SQL 登录名。nt_domainnvarchar(128)从中建立会话连接的域。nt_user_namenvarchar(128)与会话关联的用户名。statusnvarchar(30)会话的状态。可能的值: 1,运行 - 当前正在运行一个或多个请求
2,睡眠 - 当前没有运行任何请求
3,休眠 - 会话处于登录前状态
context_infovarbinary(128)会话的 CONTEXT_INFO 值。cpu_timeint该会话所占用的 CPU 时间(毫秒)。memory_usageint该会话所占用的 8 KB 内存页数。total_scheled_timeint计划内含请求的会话的执行所耗用的总计时间(毫秒)。total_elapsed_timeint自会话建立以来已耗用的时间(毫秒)。endpoint_idint与会话关联的端点的 ID。last_request_start_timedatetime最近一次会话请求的开始时间。这包括当前正在执行的请求。last_request_end_timedatetime最近一次会话请求的完成时间。readsbigint在该会话期间该会话中的请求所执行的读取次数。Writesbigint在该会话期间该会话中的请求所执行的写入次数。logical_readsbigint已对该会话执行的逻辑读取数。is_user_processbit如果会话是系统会话,则为 0。否则,为 1。text_sizeint会话的 TEXTSIZE 设置。languagenvarchar(128)会话的 LANGUAGE 设置。date_formatnvarchar(3)会话的 DATEFORMAT 设置。date_firstsmallint会话的 DATEFIRST 设置。quoted_identifierbit会话的 QUOTED_IDENTIFIER 设置。arithabortbit会话的 ARITHABORT 设置。ansi_null_dflt_onbit会话的 ANSI_NULL_DFLT_ON 设置。ansi_defaultsbit会话的 ANSI_DEFAULTS 设置。ansi_warningsbit会话的 ANSI_WARNINGS 设置。ansi_paddingbit会话的 ANSI_PADDING 设置。ansi_nullsbit会话的 ANSI_NULLS 设置。concat_null_yields_nullbit会话的 CONCAT_NULL_YIELDS_NULL 设置。transaction_isolation_levelsmallint会话的事务隔离级别。 0 = 未指定 1 = 未提交读取 2 = 已提交读取 3 = 可重复 4 = 可序列化 5 = 快照lock_timeoutint会话的 LOCK_TIMEOUT 设置。该值以毫秒计。deadlock_priorityint会话的 DEADLOCK_PRIORITY 设置。row_countbigint到目前为止会话返回的行数。prev_errorint会话返回的最近一个错误的 ID。比如说,我们要看那些主机有连接到了sqlserver服务器,可以使用下面的sql语句:
select distinct host_name from sys.dm_exec_Sessions要看那些用户已连接到sqlserver服务器:
select distinct login_name from sys.dm_exec_Sessions当然,利用上面的列,我们可以获得更多想要的客户端信息2、Sys.dm_exec_connections 这个视图返回了连接sqlserver服务器上面的每个连接的详细信息,下面是Sys.dm_exec_connections返回的列:列名数据类型 说明Session_idint标识与此连接关联的会话。most_recent_Session_idint显示与此连接关联的最近请求的会话 ID。connect_timedatetime连接建立时的时间戳。net_transportnvarchar(40)说明该连接使用的物理传输协议。protocol_typenvarchar(40)指定负载的协议类型。此参数当前可区分 TDS (TSQL) 和 SOAP。protocol_versionint与此连接关联的数据访问协议的版本。endpoint_idint与此连接关联的端点的唯一标识符。此 endpoint_id 可用于查询 sys.endpoints 视图。encrypt_optionnvarchar(40)说明是否为此连接启用了加密的布尔值。auth_schemenvarchar(40)指定与此连接一起使用的 SQL Server/NT 身份验证。node_affinitysmallint显示与此连接关联的 SOS 节点。num_readsint此连接中已发生的读包次数。num_writesint此连接中已发生的写数据包次数。last_readdatetime此连接中上一次发生读操作的时间戳。last_writedatetime此连接中上一次发生写操作的时间戳。net_packet_sizeint用于信息和数据的网络包的大小。client_net_addressvarchar(40)与此服务器连接的客户端的主机地址。client_tcp_portint与该连接关联的客户机上的端口号。local_net_addressvarchar(40)显示此连接的目标服务器的 IP 地址。只对使用 TCP 传输提供程序的连接可用。local_tcp_portint如果此连接使用 TCP 传输,则显示该连接的目标服务器的 TCP 端口。connection_iniqueidentifier对每个连接进行唯一标识。parent_connection_iniqueidentifier标识MARS 会话正在使用的主要连接。most_recent_sql_handlevarbinary(64)此连接上执行的上一个请求的 SQL 句柄。most_recent_sql_handle 列始终与 most_recent_Session_id 列同步。比如,我要查看当前连接的客户端IP与sqlserver所在服务器的IP,可以用下面的sql查询:
select client_net_address '客户端IP',local_net_address '服务器的IP' from sys.dm_exec_connections where Session_id=@@spid@@spid的作用是返回当前进程的会话ID。