我编写了一个 powershell 脚本,它创建一个新的 sql server 数据库和登录,然后将数据库所有者设置为新创建的用户。这是成功的。但是,尝试在同一脚本中登录时出现登录失败异常。如果我使用 SQL Server Management Studio,则登录有效。
这是脚本:
$server = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database($server, 'TestDB')
$db.Create()
$login = new-object Microsoft.SqlServer.Management.Smo.Login("(local)", 'TestUser')
$login.LoginType = 'SqlLogin'
$login.PasswordPolicyEnforced = $false
$login.PasswordExpirationEnabled = $false
$login.Create('Password1')
$server = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $server.Databases.Item('TestDB')
$db.SetOwner('TestUser', $TRUE)
$db.Alter()
Invoke-Sqlcmd -ServerInstance localhost -Database 'TestDB' -Username 'TestUser' -Password 'Password1' -Query "SELECT * FROM sysusers"
我试过添加一个Start-Sleep
(最多5分钟)无济于事,我试过Restart-Service mssqlserver -Force
了,也无济于事。
有任何想法吗?