2009-12-28 62 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' 
相關問題