2009-12-28 17 views
2

我想在不知道机器主机名的情况下引用Windows机器上的用户帐户。在不知道机器主机名的情况下在SQL脚本中指定Windows用户名

具体来说,我在SQL脚本中为SQL服务器数据库分配权限,该权限将为该计算机上的本地用户帐户授予权限。

例如: CREATE USER [用户a] FOR LOGIN [MACHINENAME \用户a] WITH DEFAULT_SCHEMA = [DBO]

调用该脚本作为安装过程的一部分,所以不知道“MACHINENAME ' 提前时间。

是否有一个特殊的标记,意思是我可以使用的“本地机器”?例如: '。\ UserA'或'localhost \ UserA'?

谢谢!

回答

1

我还没有真正使用过这个,但是您可能会在SQLCMD模式环境变量中找到您需要的。

有一个特别是SQLCMDWORKSTATION,我想会给你你想要的。

MSDN documentation指出此变量默认为计算机名称。

您也可以覆盖SQLCMD .ini文件中的这些环境变量。

如果这不起作用,那么您仍然可以在SQLCMD模式下找到可行的解决方案 - 它可以让您动态地将变量插入到SQL脚本中。

1

谢谢 - 我找到了一个好办法做到这一点,使用SERVERPROPERTY( '计算机名'),具体如下:

DECLARE @USERNAME NVARCHAR(MAX) 
DECLARE @MACHINE_NAME NVARCHAR(MAX) 
SELECT @MACHINE_NAME = CAST(SERVERPROPERTY('MachineName') AS NVARCHAR(MAX)) 
SET @USERNAME = @MACHINE_NAME + '\UserA' 
相关问题