在不知道计算机主机名的情况下在 SQL 脚本中指定 Windows 用户名
我想引用 Windows 计算机上的用户帐户,但不知道计算机的主机名。
具体来说,我在 SQL 脚本中分配 SQL Server 数据库的权限,这将向该计算机上的本地用户帐户授予权限。
例如: CREATE USER [UserA] FOR LOGIN [MACHINENAME\UserA] WITH DEFAULT_SCHEMA=[dbo]
此脚本是作为安装过程的一部分调用的,因此我事先不知道“MACHINENAME”。
是否有一个特殊的标记,表示我可以使用的“本地计算机”?像这样的东西: '.\UserA',还是'localhost\UserA'?
谢谢!!
I'd like to reference a user account on a Windows machine, without knowing the host name of the machine.
Specifically, I am assigning permissions on a SQL server database, in a sql script, that will give permissions to a local user account on that machine.
For example:
CREATE USER [UserA] FOR LOGIN [MACHINENAME\UserA] WITH DEFAULT_SCHEMA=[dbo]
This script is invoked as part of an installation process, so I don't know the 'MACHINENAME' ahead of time.
Is there a special token meaning 'the local machine' that I can use? Something like:
'.\UserA', or 'localhost\UserA'?
Thanks!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我实际上没有使用过这个,但你可能会在 SQLCMD 模式环境变量中找到你需要的东西。
我认为有一个特别的
SQLCMDWORKSTATION
可以满足您的需求。MSDN 文档 指出此变量默认为计算机名称。
您还可以在 SQLCMD .ini 文件中覆盖这些环境变量。
如果这不起作用,那么您仍然可以在 SQLCMD 模式中找到可行的解决方案 - 它允许您将变量动态插入到 SQL 脚本中。
I haven't actually used this, but you may find what you need in the SQLCMD mode environment variables.
There is one in particular
SQLCMDWORKSTATION
that I think will give you what you want.The MSDN documentation states that this variable defaults to the computer name.
You can also override these environment variables within a SQLCMD .ini file.
If that doesn't work, then you may still find a workable solution within SQLCMD mode - it lets you dynamically insert variables into SQL scripts.
谢谢 - 我找到了一个好方法,使用 SERVERPROPERTY('MachineName'),如下所示:
Thanks -- I found a good way to do it, using the SERVERPROPERTY('MachineName'), as follows: