首页 > 解决方案 > 从 PowerShell 命令执行 SQL 时如何参数化登录

问题描述

我们如何CREATE LOGIN ...针对变量字符串运行?

在此处输入图像描述

我正在执行以下命令:

Invoke-Sqlcmd -ServerInstance $ServerInstance -Database 'master' -Username $DBAdminAccount -Password $DBAdminPassword -Variable $SqlVariables -InputFile $ArtifactStagingDirectory\MasterDBSetup.sql

MasterDBSetup.sql:

....
    IF NOT EXISTS (SELECT name  FROM sys.sql_logins WHERE name = '$(SvcRRRComparisonUser)')
    BEGIN 
        CREATE LOGIN '$(SvcRRRComparisonUser)' WITH PASSWORD = '$(RRRComparisonUserPassword)'
    END
....

我们如何CREATE LOGIN ...对抗$(SvcRRRComparisonUser)

标签: sql.netsql-serverpowershell

解决方案


$SqlVariables

$SqlVariables = @("SvcRRRComparisonUser='user1',RRRComparisonUserPassword='pass1'")

然后在 SQL 文件中:

IF NOT EXISTS (SELECT name  FROM sys.sql_logins WHERE name = $(SvcRRRComparisonUser)
BEGIN 
    CREATE LOGIN $(SvcRRRComparisonUser) WITH PASSWORD = $(RRRComparisonUserPassword)
END

推荐阅读