gpt4 book ai didi

sql - Powershell SQL创建数据库,用户并将用户添加到所有者

转载 作者:行者123 更新时间:2023-12-03 01:03:38 25 4
gpt4 key购买 nike

我对Powershell相当陌生,我正在尝试创建一个脚本,该脚本创建sql数据库,创建具有密码的用户,然后将该用户添加为新创建的数据库的所有者。该脚本将创建数据库,但是当我进入用户时,那里没有看到“TestUser”。

#load assemblies
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
#Need SmoExtended for backup
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
$server = New-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database($server, 'TestDB2')
$db.Create()

$login = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Login($server, 'TestUser')
$login.LoginType = 'SqlLogin'
$login.PasswordExpirationEnabled = $false
$login.Create('PasswordGoesHere')



$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()

最佳答案

您不会在数据库中看到该用户,因为数据库的所有者不能是数据库中的用户。如果您尝试使数据库中的现有用户成为所有者,则可以在SSMS中看到此情况-您将收到一条错误消息,“建议的数据库所有者已映射为该数据库上的用户”。

enter image description here

使用powershell时,不会抛出此消息,它只是取消了用户在后台的映射-因此,如果您以前在数据库中看到过该用户,则一旦拥有该用户便不再需要。尽管您从未在数据库中创建用户,但这并不是您所经历的。您只是看到了预期的行为。

关于sql - Powershell SQL创建数据库,用户并将用户添加到所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52391774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com