【问题标题】:How to get an unique id from sql server如何从 sql server 获取唯一的 id
【发布时间】:2014-12-08 08:53:54
【问题描述】:

有没有办法让普通用户(客户端)在服务器上没有提升权限(没有特殊的数据库权限、本地管理员或任何类型)从服务器获取任何类型的唯一 ID(MAC 地址、数据库安装 ID、服务器硬件 ID)或任何类似的东西?

基本上,我正在寻找一个 ID 来验证安装。我知道我可以通过将某种 ID 写入注册表和数据库来安装服务器端来做到这一点,但是有没有办法在不安装任何东西的情况下做到这一点?最低要求是我从带有 Linux 和 Windows 的 MySQL 和 SQL Server 获得。

我目前的研究表明没有这样的事情。如以下评论所示:

我认为任何答案都需要 xp_cmdshell ,因为它是独一无二的 硬件信息不直接暴露给 SQL Server

【问题讨论】:

    标签: sql-server linux windows-server


    【解决方案1】:

    我认为您不能直接从 Sql-Server 获取硬件详细信息。它可能会抛出可以与 sql-server 和您的系统硬件一起贡献的其他程序。

    sql server 中有一个预定义函数,它会为您提供唯一且随机的 id 。

    create table TableName
    (
       id varchar(max) default newid()
    )
    

    【讨论】:

    • 我知道,但这并没有让我更接近解决问题
    【解决方案2】:

    我能找到的最好的方法是您可以使用来自sys.database_filesfile_guid。您只需要以公共角色执行此操作,并且每个数据库应该是唯一的。如果您创建或删除数据库文件,您会遇到麻烦,而且它不会验证您是否在同一台服务器上。

    请注意,如果您的数据库是在 SQL Server 2005 之前创建的,则该值将为空,因为它不存在。

    【讨论】:

      猜你喜欢
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多