简体   繁体   English

从 PowerShell 命令执行 SQL 时如何参数化登录

[英]How to parameterize logins when executing SQL from PowerShell command

How do we run CREATE LOGIN... against a variable string?我们如何针对可变字符串运行CREATE LOGIN...

在此处输入图像描述

I'm executing the following command:我正在执行以下命令:

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

MasterDBSetup.sql: MasterDBSetup.sql:

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

How do we run CREATE LOGIN... against $(SvcRRRComparisonUser) ?我们如何针对$(SvcRRRComparisonUser)运行CREATE LOGIN...

In the $SqlVariables :$SqlVariables

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

Then in the SQL file:然后在SQL文件中:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM