对于没有提升权限(没有特殊数据库权限,本地管理员或任何类型)的普通用户(客户端),是否有办法从服务器获取任何类型的唯一ID(MAC地址) ,数据库安装ID,服务器硬件ID)或类似的任何东西?
基本上我正在寻找一个ID来验证安装。我知道我可以通过在注册表和数据库中编写某种ID来安装服务器端,但有没有办法在不安装任何东西的情况下执行此操作?最低要求是我通过Linux和Windows从MySQL和SQL Server获得。
我目前的研究表明,没有这样的事情。如下面的评论所示:
我认为任何答案都需要xp_cmdshell,因为它是唯一的 硬件信息不直接暴露给SQL Server
答案 0 :(得分:0)
我认为你不能直接从Sql-Server获取硬件细节。它可能会抛出其他程序,这些程序可以为sql-server和你的系统硬件做出贡献。
在sql server中有一个预定义函数,它将为您提供唯一且随机的id。
create table TableName
(
id varchar(max) default newid()
)
答案 1 :(得分:0)
我能找到的最好的就是你可以使用file_guid
中的sys.database_files
。您只需要在公共角色中执行此操作,并且每个数据库应该是唯一的。如果您创建或删除数据库文件,您将遇到麻烦,并且它无法验证您是否在同一台服务器上。
请注意,如果您的数据库是在SQL Server 2005之前创建的,则该值将为null,因为它不存在。