如何用SQL命令获取SQL SERVER所在服务器的网卡MAC

特别 2009-11-25 10:52:45
查一了下,通过执行xp_cmdshell 'ipconfig/all'来获取,
要是服务器没有开放xp_cmdshell怎么获取呢
我的目的是想获取SQL SERVER服务器的网卡MAC,
生成注册码,并且控制客户端数量
无论是通过硬盘序列号还是主板序列号什么的,前提是得取到这些号
而且只能通过SQL命令来取,
因为每次登录的时候都需要验证,要不然别人把一台机的注册信息复制到另一台机器就可以了
...全文
769 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
licry01 2009-11-26
  • 打赏
  • 举报
回复
在非system admin角色下用sql命令完成这样的任务还真不会

学习一下, 等待高人出现
lao_bulls 2009-11-26
  • 打赏
  • 举报
回复
在自己的数据库编一个储存,然后调用。
create proc
declare @dbid int
set @dbid=db_id('數據庫名')
select distinct hostname,
db_name(dbid),
net_address, --物理地址
loginame,
program_name
from master..sysprocesses
where hostname='服務器名'and(@dbid is null or dbid=@dbid)
特别 2009-11-26
  • 打赏
  • 举报
回复
结贴小结:
如果有访问Master数据库的权限,可以考虑使用6楼的方法
如果同时能访问xp_cmdshell权限,这个问题就不是一个问题

否则单纯通过SQL SERVER本身,此问题目前无解。
感谢各位的热心回答。
oceantang 2009-11-25
  • 打赏
  • 举报
回复
是否可以采用一个中间服务来做处理,利用中间服务来记录每台机器登录的IP。只记录IP不行吗?
特别 2009-11-25
  • 打赏
  • 举报
回复
再顶一下,难道没有救了吗
特别 2009-11-25
  • 打赏
  • 举报
回复
再顶一下
特别 2009-11-25
  • 打赏
  • 举报
回复
貌似是这样的
[Quote=引用 9 楼 happy_stone 的回复:]
引用 7 楼 sdfkfkd 的回复:
谢谢
如果是托管的服务器,貌似不能访问 Master 数据库

引用 5 楼 happy_stone 的回复:
SQL codedeclare@dbidintset@dbid=db_id('db_Stuey')selectdistinct hostname,db_name(dbid),
        net_address,
        loginame,
        program_namefrom master..sysprocesseswhere hostname!=''and(@dbidisnullor dbid=@dbid)


那程序端不能
master不讓訪問
不好搞
[/Quote]
快乐_石头 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sdfkfkd 的回复:]
谢谢
如果是托管的服务器,貌似不能访问 Master 数据库

引用 5 楼 happy_stone 的回复:
SQL codedeclare@dbidintset@dbid=db_id('db_Stuey')selectdistinct hostname,db_name(dbid),
        net_address,
        loginame,
        program_namefrom master..sysprocesseswhere hostname!=''and(@dbidisnullor dbid=@dbid)

[/Quote]
那程序端不能
master不讓訪問
不好搞
guguda2008 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 happy_stone 的回复:]
SQL codedeclare@dbidintset@dbid=db_id('數據庫名')selectdistinct hostname,db_name(dbid),
net_address,--物理地址 loginame,
program_namefrom master..sysprocesseswhere hostname='服務器名'and(@dbidisnullor dbid=@dbid)
[/Quote]
学习
特别 2009-11-25
  • 打赏
  • 举报
回复
谢谢
如果是托管的服务器,貌似不能访问 Master 数据库

[Quote=引用 5 楼 happy_stone 的回复:]
SQL codedeclare@dbidintset@dbid=db_id('db_Stuey')selectdistinct hostname,db_name(dbid),
net_address,
loginame,
program_namefrom master..sysprocesseswhere hostname!=''and(@dbidisnullor dbid=@dbid)
[/Quote]
快乐_石头 2009-11-25
  • 打赏
  • 举报
回复
declare @dbid int
set @dbid=db_id('數據庫名')
select distinct hostname,
db_name(dbid),
net_address, --物理地址
loginame,
program_name
from master..sysprocesses
where hostname='服務器名'and(@dbid is null or dbid=@dbid)
快乐_石头 2009-11-25
  • 打赏
  • 举报
回复
declare @dbid int
set @dbid=db_id('db_Stuey')
select distinct hostname,
db_name(dbid),
net_address,
loginame,
program_name
from master..sysprocesses
where hostname!=''and(@dbid is null or dbid=@dbid)
ChinaJiaBing 2009-11-25
  • 打赏
  • 举报
回复
不好办..
特别 2009-11-25
  • 打赏
  • 举报
回复
客户端不好直接获取
我这个虽然说是C/S的,但是都是客户端直接访问SQL服务器的
没有真正意义的服务端
客户端咋获取SQL服务器的MAC呢,局域网内可以
但有些客户端可能是远程访问(通过外网)的
[Quote=引用 2 楼 icelovey 的回复:]
感觉这个应该是在程序段控制吧
[/Quote]
icelovey 2009-11-25
  • 打赏
  • 举报
回复
感觉这个应该是在程序段控制吧
--小F-- 2009-11-25
  • 打赏
  • 举报
回复
不用BCP还真不知道怎么弄 帮顶
lrjt1980 2009-11-25
  • 打赏
  • 举报
回复
应该有一个全局变量吧.

34,591

社区成员

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

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