2

我想在不知道机器主机名的情况下引用 Windows 机器上的用户帐户。

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

例如:使用 DEFAULT_SCHEMA=[dbo] 为登录 [MACHINENAME\UserA] 创建用户 [UserA]

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

是否有我可以使用的特殊标记,意思是“本地机器”?像:'.\UserA',还是'localhost\UserA'?

谢谢!!

4

2 回答 2

1

谢谢 - 我找到了一个很好的方法,使用 SERVERPROPERTY('MachineName'),如下所示:

DECLARE @USERNAME NVARCHAR(MAX)
DECLARE @MACHINE_NAME NVARCHAR(MAX)
SELECT @MACHINE_NAME = CAST(SERVERPROPERTY('MachineName') AS NVARCHAR(MAX))
SET @USERNAME = @MACHINE_NAME + '\UserA'
于 2009-12-28T11:52:17.907 回答
1

我并没有实际使用过这个,但是你可能会在 SQLCMD 模式的环境变量中找到你需要的东西。

我认为有一个特别SQLCMDWORKSTATION会给你你想要的东西。

MSDN 文档声明此变量默认为计算机名称。

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

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

于 2009-12-28T11:12:43.837 回答