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