PoshCode Archive  Artifact [5353fea5d3]

Artifact 5353fea5d3e509c09b49304ff3713b9149160773af8e5628614d88340a8b1333:

  • File Add-User-to-database-rol.ps1 — part of check-in [7c89b93864] at 2018-06-10 13:41:34 on branch trunk — ############################################################################################# (user: SQLDBAwithabeard size: 2563)

# encoding: ascii
# api: powershell
# title: Add User to database rol
# description: #############################################################################################
# version: 0.1
# type: function
# author: SQLDBAwithabeard
# license: CC0
# function: Add-UserToRole
# x-poshcode-id: 4476
# x-derived-from-id: 6015
# x-archived: 2017-04-08T14:35:10
# x-published: 2014-09-17T18:51:00
#
# #
# NAME: Add-UserToRole.ps1
# AUTHOR: Rob Sewell http://sqldbawithabeard.com
# DATE:11/09/2013
# #
# COMMENTS: Load function to add user or group to a role on a database
# #
# USAGE: Add-UserToRole fade2black Aerosmith Test db_owner
#
#############################################################################################
#
# NAME: Add-UserToRole.ps1
# AUTHOR: Rob Sewell http://sqldbawithabeard.com
# DATE:11/09/2013
#
# COMMENTS: Load function to add user or group to a role on a database
#
# USAGE: Add-UserToRole fade2black Aerosmith Test db_owner
#        

Function Add-UserToRole ([string] $server, [String] $Database , [string]$User, [string]$Role)
{
$Svr = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $server
#Check Database Name entered correctly
$db = $svr.Databases[$Database]
    if($db -eq $null)
        {
        Write-Host " $Database is not a valid database on $Server"
        Write-Host " Databases on $Server are :"
        $svr.Databases|select name
        break
        }
#Check Role exists on Database
        $Rol = $db.Roles[$Role]
    if($Rol -eq $null)
        {
        Write-Host " $Role is not a valid Role on $Database on $Server  "
        Write-Host " Roles on $Database are:"
        $db.roles|select name
        break
        }
    if(!($svr.Logins.Contains($User)))
        {
        Write-Host "$User not a login on $server create it first"
        break
        }
    if (!($db.Users.Contains($User)))
        {
        # Add user to database

        $usr = New-Object ('Microsoft.SqlServer.Management.Smo.User') ($db, $User)
        $usr.Login = $User
        $usr.Create()

        #Add User to the Role
        $Rol = $db.Roles[$Role]
        $Rol.AddMember($User)
        Write-Host "$User was not a login on $Database on $server"
        Write-Host "$User added to $Database on $Server and $Role Role"
        }
        else
        {
         #Add User to the Role
        $Rol = $db.Roles[$Role]
        $Rol.AddMember($User)
        Write-Host "$User added to $Role Role in $Database on $Server "
        }
}