Powershell export-csv SQL Права пользователя - PullRequest
0 голосов
/ 27 марта 2020

извините за вопрос, но у меня есть проблема для экспорта в CSV. Я обнаружил, что этот полезный скрипт имеет все права пользователя в базах данных, но я не знаю, как экспортировать его в csv, например: SQL Экземпляр, Логин, Разрешения

Я пытался с записью вывода но ничего хорошего. Спасибо заранее за вашу помощь

Function GetDBUserInfo($Dbase)  
 {  
  if ($dbase.status -eq "Normal")  
   {$users = $Dbase.users | where {$_.login -eq $SQLLogin.name}
     foreach ($u in $users)  
     {  
       if ($u)  
         {    
           $DBRoles = $u.enumroles()   
           foreach ($role in $DBRoles) {
           if ($role -eq "db_owner") {
           write-host $role "on"$Dbase.name -foregroundcolor "red" 
           }
           else { 
           write-host $role "on"$Dbase.name
           }
           } 

         foreach($perm in $Dbase.EnumObjectPermissions($u.Name)){
         write-host  $perm.permissionstate $perm.permissiontype "on" $perm.objectname "in" $DBase.name } 
      }  
    } 
   }  

 }  

 [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null  

 foreach ($SQLsvr in get-content "path to instace list")
 {    
   $svr = new-object ("Microsoft.SqlServer.Management.Smo.Server") $SQLsvr   
   write-host "==============================================================================" 
   $svr.name
   $SQLLogins = $svr.logins 

   foreach ($SQLLogin in $SQLLogins)  
    {  

    write-host    "Login          : " $SQLLogin.name     

     if ($SQLLogin.EnumDatabaseMappings())  
       {write-host "Permissions:"
       foreach ( $DB in $svr.Databases)   
         {   
         GetDBUserInfo($DB)              
         }          
       }
     Else  
       {write-host "Permissions: None"
       }   
     write-host "--------------------------------------------------------------------------------" 
     } 
    }
...