【问题标题】:Powershell - User Mapping SQL Server 2012Powershell - 用户映射 SQL Server 2012
【发布时间】:2013-08-30 09:20:57
【问题描述】:

我正在尝试为不同的登录帐户编写用户映射脚本。我已经编写了用户和单个服务器角色的创建脚本,但我不知道如何使用 Powershell 设置用户映射,我还需要设置Database Role membership,尤其是db_backupoperator

有人知道如何使用 Powershell 做到这一点吗?

【问题讨论】:

    标签: sql sql-server powershell sql-server-2012 sqlps


    【解决方案1】:

    假设您的登录已创建

    ## Creating database user and assigning database role    
    
    #get variables
    $instanceName = "yourInstance"
    $loginName = "testLogin"
    $dbUserName = "testUserName"
    $databasename = "tempdb"
    $roleName = "db_backupoperator"
    $server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName
    
    #add a database mapping
    $database = $server.Databases[$databasename]
    $login = $server.Logins[$loginName]
    if ($database.Users[$dbUserName])
    {
        $database.Users[$dbUserName].Drop()
    }
    $dbUser = New-Object `
    -TypeName Microsoft.SqlServer.Management.Smo.User `
    -ArgumentList $database, $dbUserName
    $dbUser.Login = $loginName
    $dbUser.Create()
    
    #assign database role for a new user
    $dbrole = $database.Roles[$roleName]
    $dbrole.AddMember($dbUserName)
    $dbrole.Alter
    

    【讨论】:

    • Soo,这行得通,就像我之前的尝试一样。它将为指定的数据库设置用户映射,但是,它将有dbUserName作为用户,我想要login,在我的情况下是一个组作为用户......我将添加代码为我所拥有的。
    • 登录名和dbUserName有什么区别?
    猜你喜欢
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 2015-10-15
    • 2014-04-28
    • 1970-01-01
    相关资源
    最近更新 更多