如何更改用户权限以通过 ssms 中的 powershell 连接到数据库引擎?

How do change a users permission to connect to database engine through powershell in ssms?

我目前正在编写一个脚本来自动添加用户。到目前为止,我可以使用 sqlserver 模块 Add-SqlLogin cmdlet 添加新的 SQL 登录。我可以使用我找到的另一个脚本为用户添加数据库映射。 剩下的就是实际允许用户连接到数据库(见图)。我还没有找到通过 powershell 做到这一点的方法。谁能指出我的解决方案? The option I wish to set through powershell

经过一个小时的谷歌搜索,我找到了解决方案:

$ServerInstance = "server"
$name = "user"
$action = "Grant"
$permission = "ConnectSql"

$server =  New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $ServerInstance

$perm = New-Object Microsoft.SqlServer.Management.Smo.ServerPermissionSet
$perm.$($permission.ToString()) = $true

switch ($action)
{ 
    'Grant'  { $server.Grant($perm,$name) }
    'Deny'   { $server.Deny($perm,$name) }
    'Revoke' { $server.Revoke($perm,$name) }
}

How to use Powershell to modify SQL login permission? 正如乍得米勒的回答。