新しいSQLサーバーデータベースとログインを作成し、データベース所有者を新しく作成されたユーザーに設定するpowershellスクリプトを作成しました。これは成功です。ただし、同じスクリプト内でログインしようとすると、ログイン失敗の例外が発生します。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
、 も無駄にしました。
何か案は?