hjmarcon

Grant User Firebird

Aug 20th, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.63 KB | None | 0 0
  1. public function PermissoesUsuario($Banco, $Usuario){
  2.         global $admin;
  3.         $return = "";
  4.         try{
  5.             $cnx = $this->conectar($Banco, $admin["USUARIO"], $admin["SENHA"]);            
  6.             if (!$cnx){
  7.                 $cnx = $this->conectar($Banco, $admin["USUARIO"], $admin["SENHA"]);
  8.                 throw new Exception("# Nao foi possivel retornar conexao.");
  9.             }
  10.                    
  11.             $sql = " SELECT RDB\$RELATION_NAME AS TABELA
  12.                      FROM RDB\$RELATIONS R
  13.                      WHERE RDB\$SYSTEM_FLAG = 0
  14.                      AND   NOT EXISTS(SELECT *
  15.                                       FROM RDB\$USER_PRIVILEGES P
  16.                                       WHERE P.RDB\$RELATION_NAME = R.RDB\$RELATION_NAME
  17.                                       AND   P.RDB\$USER = '".$Usuario."'
  18.                                       )
  19.                      ORDER BY RDB\$RELATION_NAME ";
  20.             $resultado = ibase_query($cnx, $sql);      
  21.             $tr = ibase_trans();
  22.             while ($row=ibase_fetch_object ($resultado)){
  23.                 if ($Usuario == "ADM"){
  24.                     $sql= " GRANT ALL ON ".$row->TABELA." TO ".$Usuario." WITH GRANT OPTION";
  25.                 }else{
  26.                     $sql = "GRANT SELECT, INSERT, DELETE, UPDATE, REFERENCES ON ".$row->TABELA." TO ".$Usuario." WITH GRANT OPTION";
  27.                 }
  28.                 $query = ibase_prepare($tr, $sql);             
  29.                 $tmp = ibase_execute($query);          
  30.                 //$tmp = ibase_query($tr, $sql);
  31.                 echo "result sql: ".$tmp."<br>";
  32.             }          
  33.             ibase_commit($tr); // <- precisa do $tr aqui
  34.             ibase_close($cnx);
  35.         }catch (Exception $ex) {
  36.             echo "erro rollback: ".$ex->getMessage()."<br>";
  37.             ibase_rollback();
  38.             $return = "#".$ex->getMessage();
  39.         }
  40.         echo "fim<br>";
  41.         //exit;        
  42.         return $return;    
  43.     }
Advertisement
Add Comment
Please, Sign In to add comment