Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL脚本中指定Windows用户名而不知道计算机主机名_Sql_Windows_Accounts - Fatal编程技术网

在SQL脚本中指定Windows用户名而不知道计算机主机名

在SQL脚本中指定Windows用户名而不知道计算机主机名,sql,windows,accounts,Sql,Windows,Accounts,我想引用Windows计算机上的用户帐户,但不知道该计算机的主机名 具体地说,我在SQL脚本中为SQL server数据库分配权限,这将为该计算机上的本地用户帐户授予权限 例如: 为登录名[MACHINENAME\UserA]创建用户[UserA],默认模式为[dbo] 这个脚本是作为安装过程的一部分调用的,所以我事先不知道“MACHINENAME” 是否有一个特殊的标记,意思是“本地机器”,我可以使用?比如: “.\UserA”或“localhost\UserA” 谢谢 我实际上没有使用过这个

我想引用Windows计算机上的用户帐户,但不知道该计算机的主机名

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

例如: 为登录名[MACHINENAME\UserA]创建用户[UserA],默认模式为[dbo]

这个脚本是作为安装过程的一部分调用的,所以我事先不知道“MACHINENAME”

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


谢谢

我实际上没有使用过这个,但是您可以在SQLCMD模式环境变量中找到所需的内容

我认为有一个特别的
SQLCMDWORKSTATION
可以满足您的需求

声明此变量默认为计算机名

您还可以在SQLCMD.ini文件中重写这些环境变量

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

谢谢—我找到了一个很好的方法,使用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'