當前位置:首頁 » 編程語言 » 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。