diff --git a/htdocs/install/etape2.php b/htdocs/install/etape2.php
index b7e111a7e6ff3492c00b209d71b830100045d31b..885e8ec42901669c6c48c43b79fd68a6d7358ea7 100644
--- a/htdocs/install/etape2.php
+++ b/htdocs/install/etape2.php
@@ -315,26 +315,6 @@ if ($_POST["action"] == "set")
     }
     
     
-    /***************************************************************************************
-    *
-    * Positionnement des droits
-    *
-    ***************************************************************************************/
-    if ($ok)
-    {
-        // Droits sur les tables
-        $grant_query=$db->getGrantForUserQuery($dolibarr_main_db_user);
-        
-        if ($grant_query)   // Seules les bases qui en ont besoin le definisse
-        {
-            if ($db->query($grant_query))
-            {
-                print "<tr><td>Grant User</td><td>".$langs->trans("OK")."</td></tr>";
-            }
-        }
-    }   
-
-
     /***************************************************************************************
     *
     * Chargement fichier functions.sql
diff --git a/htdocs/lib/databases/mssql.lib.php b/htdocs/lib/databases/mssql.lib.php
index 2865d6c1d696bc0135b9cacec3453bdfd2ae956a..aa26756f303fe694d69f326e429aa28c27217a2d 100644
--- a/htdocs/lib/databases/mssql.lib.php
+++ b/htdocs/lib/databases/mssql.lib.php
@@ -528,6 +528,18 @@ class DoliDb
 		}
     }
 
+
+	/**
+        \brief      Escape a string to insert data.
+        \param	    stringtoencode		String to escape
+        \return	    string				String escaped
+    */
+    function escape($stringtoencode)
+	{
+		return addslashes($stringtoencode);
+	}
+
+
     /**
         \brief      Formatage (par la base de donn�es) d'un champ de la base au format TMS ou Date (YYYY-MM-DD HH:MM:SS)
                     afin de retourner une donn�e toujours au format universel date TMS unix.
@@ -655,96 +667,67 @@ class DoliDb
     }
 
 
-  // Next function are not required. Only minor features use them.
-  //--------------------------------------------------------------
+	// Next function are not required. Only minor features use them.
+	//--------------------------------------------------------------
 
 
 
-  /**
-     \brief          Renvoie l'id de la connexion
-     \return	        string      Id connexion
-  */
-  function getConnectId()
-  {
-    $resql=$this->query('SELECT CONNECTION_ID()');
-    $row=$this->fetch_row($resql);
-    return $row[0];
-  }
+	/**
+		\brief          Renvoie l'id de la connexion
+		\return	        string      Id connexion
+	*/
+	function DDLGetConnectId()
+	{
+		$resql=$this->query('SELECT CONNECTION_ID()');
+		$row=$this->fetch_row($resql);
+		return $row[0];
+	}
 
-  /**
-     \brief          Renvoie la commande sql qui donne les droits � user sur toutes les tables
-     \param          databaseuser    User � autoriser
-     \return	        string          Requete sql
-  */
-  function getGrantForUserQuery($databaseuser)
-  {
-	  /*
-	  $query = "DECLARE @tables TABLE(ROWID int IDENTITY(1,1), SQLSTR varchar(500)) INSERT INTO @tables SELECT '"
-	  $query .= "GRANT SELECT ON '+NAME+' TO ".$databaseuser." FROM sysobjects WHERE TYPE = 'U' AND "
-	  $query .= "NAME NOT LIKE 'SYNC%' DECLARE   @rowid int, @sqlstr varchar(500) SET @rowid = 0 "
-	  $query .= "SET @sqlstr = '' DECLARE grant_tbl_cursor CURSOR FOR SELECT ROWID, SQLSTR FROM @tables ORDER BY ROWID"
-	  $query .= "OPEN grant_tbl_cursor FETCH NEXT FROM grant_tbl_cursor INTO @rowid,@sqlstr WHILE @@FETCH_STATUS = 0 "
-	  $query .= "BEGIN EXECUTE (@sqlstr) FETCH NEXT FROM grant_tbl_cursor INTO @rowid,@sqlstr END CLOSE grant_tbl_cursor "
-	  $query .= "DEALLOCATE grant_tbl_cursor"
-	  */
-    return '';
-  }
-  
-  
-  /**
-     \brief      Retourne le dsn pear
-     \return     dsn
-  */
-  function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
-  {
-    return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
-  }
-  
-  /**
-     \brief          Cr�ation d'une nouvelle base de donn�e
-     \param	        database		nom de la database � cr�er
-     \return	        resource		resource d�finie si ok, null si ko
-     \remarks        Ne pas utiliser les fonctions xxx_create_db (xxx=mssql, ...) car elles sont deprecated
-     On force creation de la base avec le charset forcecharset
-  */
-  function DDLCreateDb($database)
-  {
-    // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
-    $sql = 'CREATE DATABASE '.$database;
-    $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
-    $ret=$this->query($sql);
-    if (! $ret)
-      {
-	// On r�essaie pour compatibilit� avec mssql < 5.0
-	$sql = 'CREATE DATABASE '.$database;
-	$ret=$this->query($sql);
-      }
+	/**
+		\brief          Cr�ation d'une nouvelle base de donn�e
+		\param	        database		nom de la database � cr�er
+		\return	        resource		resource d�finie si ok, null si ko
+		\remarks        Ne pas utiliser les fonctions xxx_create_db (xxx=mssql, ...) car elles sont deprecated
+						On force creation de la base avec le charset forcecharset
+	*/
+	function DDLCreateDb($database)
+	{
+	    // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
+	    $sql = 'CREATE DATABASE '.$database;
+	    $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
+	    $ret=$this->query($sql);
+	    if (! $ret)
+	      {
+		// On r�essaie pour compatibilit� avec mssql < 5.0
+		$sql = 'CREATE DATABASE '.$database;
+		$ret=$this->query($sql);
+	      }
     
-    return $ret;
-  }
-  
-  /**
-     \brief      Liste des tables dans une database.
-     \param	    database	Nom de la database
-     \return	    resource
-  */
-  function DDLListTables($database)
-  {
-    $this->results = mssql_list_tables($database, $this->db);
-    return $this->results;
-  }
+		return $ret;
+	}
   
-  /**
-     \brief      Cr�e une table
-     \param	    table 			Nom de la table
-     \param	    fields 			Tableau associatif [nom champ][tableau des descriptions]
-     \param	    primary_key 	Nom du champ qui sera la clef primaire
-     \param	    unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
-     \param	    fulltext 		Tableau des Nom de champs qui seront index�s en fulltext
-     \param	    key 			Tableau des champs cl�s noms => valeur
-     \param	    type 			Type de la table
-     \return	    int				<0 si KO, >=0 si OK
-  */
+	/**
+		\brief      Liste des tables dans une database.
+		\param	    database	Nom de la database
+		\return	    resource
+	*/
+	function DDLListTables($database)
+	{
+		$this->results = mssql_list_tables($database, $this->db);
+		return $this->results;
+	}
+
+	/**
+	 \brief      Cr�e une table
+	 \param	    table 			Nom de la table
+	 \param	    fields 			Tableau associatif [nom champ][tableau des descriptions]
+	 \param	    primary_key 	Nom du champ qui sera la clef primaire
+	 \param	    unique_keys 	Tableau associatifs Nom de champs qui seront clef unique => valeur
+	 \param	    fulltext 		Tableau des Nom de champs qui seront index�s en fulltext
+	 \param	    key 			Tableau des champs cl�s noms => valeur
+	 \param	    type 			Type de la table
+	 \return	    int				<0 si KO, >=0 si OK
+	*/
 	function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="")
 	{
 		// cl�s recherch�es dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php
index c07b1fc3e8907ad24784ca27119278f38c9ba594..30123e9b80f080c63aeea46472cc4481e8b26340 100644
--- a/htdocs/lib/databases/mysql.lib.php
+++ b/htdocs/lib/databases/mysql.lib.php
@@ -207,15 +207,15 @@ class DoliDb
 	}
   
 
-  /**
-     \brief      Selectionne une database.
-     \param	    database		Nom de la database
-     \return	    boolean         true si ok, false si ko
-  */
-  function select_db($database)
-  {
-    return mysql_select_db($database, $this->db);
-  }
+	/**
+		\brief      Selectionne une database.
+		\param	    database		Nom de la database
+		\return	    boolean         true si ok, false si ko
+	*/
+	function select_db($database)
+	{
+		return mysql_select_db($database, $this->db);
+	}
 
 	/**
 		\brief		Connection vers le serveur
@@ -248,15 +248,15 @@ class DoliDb
 		return $this->db;
 	}
     
-  /**
-     \brief          Renvoie la version du serveur
-     \return	        string      Chaine version
-  */
-  function getVersion()
-  {
-    return mysql_get_server_info($this->db);
-  }
-  
+	/**
+		\brief          Renvoie la version du serveur
+		\return	        string      Chaine version
+	*/
+	function getVersion()
+	{
+		return mysql_get_server_info($this->db);
+	}
+
     /**
      \brief          Renvoie la version du serveur sous forme de nombre
      \return	        string      Chaine version
@@ -521,7 +521,18 @@ class DoliDb
     }
 	
 	
-    /**
+	/**
+        \brief      Escape a string to insert data.
+        \param	    stringtoencode		String to escape
+        \return	    string				String escaped
+    */
+    function escape($stringtoencode)
+	{
+		return addslashes($stringtoencode);
+	}
+
+	
+	/**
         \brief      Formatage (par la base de donn�es) d'un champ de la base au format TMS ou Date (YYYY-MM-DD HH:MM:SS)
                     afin de retourner une donn�e toujours au format universel date TMS unix.
                     Fonction � utiliser pour g�n�rer les SELECT.
@@ -640,63 +651,44 @@ class DoliDb
     
 
 
-  // Next function are not required. Only minor features use them.
-  //--------------------------------------------------------------
+	// Next function are not required. Only minor features use them.
+	//--------------------------------------------------------------
 
 
 
-  /**
-     \brief          Renvoie l'id de la connexion
-     \return	        string      Id connexion
-  */
-  function getConnectId()
-  {
-    $resql=$this->query('SELECT CONNECTION_ID()');
-    $row=$this->fetch_row($resql);
-    return $row[0];
-  }
+	/**
+		\brief          Renvoie l'id de la connexion
+		\return	        string      Id connexion
+	*/
+	function DDLGetConnectId()
+	{
+		$resql=$this->query('SELECT CONNECTION_ID()');
+		$row=$this->fetch_row($resql);
+		return $row[0];
+	}
 
-  /**
-     \brief          Renvoie la commande sql qui donne les droits � user sur toutes les tables
-     \param          databaseuser    User � autoriser
-     \return	        string          Requete sql
-  */
-  function getGrantForUserQuery($databaseuser)
-  {
-    return '';
-  }
-  
-  
-  /**
-     \brief      Retourne le dsn pear
-     \return     dsn
-  */
-  function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
-  {
-    return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
-  }
-  
-  /**
-     \brief          Cr�ation d'une nouvelle base de donn�e
-     \param	        database		nom de la database � cr�er
-     \return	        resource		resource d�finie si ok, null si ko
-     \remarks        Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated
-     On force creation de la base avec le charset forcecharset
-  */
-  function DDLCreateDb($database)
-  {
-    // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
-    $sql = 'CREATE DATABASE '.$database;
-    $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
-    $ret=$this->query($sql);
-	if (! $ret)
-		{
-		// On r�essaie pour compatibilit� avec Mysql < 4.1.1
+
+	/**
+		\brief          Cr�ation d'une nouvelle base de donn�e
+		\param	        database		nom de la database � cr�er
+		\return	        resource		resource d�finie si ok, null si ko
+		\remarks        Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated
+		On force creation de la base avec le charset forcecharset
+	*/
+	function DDLCreateDb($database)
+	{
+		// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
 		$sql = 'CREATE DATABASE '.$database;
+		$sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
 		$ret=$this->query($sql);
+		if (! $ret)
+		{
+			// On r�essaie pour compatibilit� avec Mysql < 4.1.1
+			$sql = 'CREATE DATABASE '.$database;
+			$ret=$this->query($sql);
 		}
-    return $ret;
-  }
+		return $ret;
+	}
   
 	/**
 		\brief     	Liste des tables dans une database.
diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php
index af9300eba0aa1f84f7939631c17d59fbd3f58314..d36c3ff93ebacf17033853e6dbf272b9df111948 100644
--- a/htdocs/lib/databases/mysqli.lib.php
+++ b/htdocs/lib/databases/mysqli.lib.php
@@ -536,6 +536,17 @@ class DoliDb
     }
 	
 	
+	/**
+        \brief      Escape a string to insert data.
+        \param	    stringtoencode		String to escape
+        \return	    string				String escaped
+    */
+    function escape($stringtoencode)
+	{
+		return addslashes($stringtoencode);
+	}
+
+
     /**
         \brief      Formatage (par la base de donn�es) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS)
                     afin de retourner une donn�e toujours au format universel date tms unix.
@@ -664,31 +675,13 @@ class DoliDb
             \brief          Renvoie l'id de la connexion
             \return	        string      Id connexion
     */
-    function getConnectId()
+    function DDLGetConnectId()
     {
         $resql=$this->query('SELECT CONNECTION_ID()');
         $row=$this->fetch_row($resql);
         return $row[0];
     }
 
-    /**
-            \brief          Renvoie la commande sql qui donne les droits sur les tables
-            \return	        string      Requete sql
-    */
-    function getGrantForUserQuery($databaseuser)
-    {
-        return '';
-    }
-
-
-    /**
-        \brief      Retourne le dsn pear
-        \return     dsn
-    */
-    function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
-    {
-        return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
-    }
 
     /**
             \brief          Cr�ation d'une nouvelle base de donn�e
@@ -696,20 +689,20 @@ class DoliDb
             \return	        resource		resource d�finie si ok, null si ko
             \remarks        Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated
     */
-  function DDLCreateDb($database)
-  {
-    // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
-    $sql = 'CREATE DATABASE '.$database;
-    $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
-    $ret=$this->query($sql);
-	if (! $ret)
-		{
-		// On r�essaie pour compatibilit� avec Mysql < 4.1.1
-		$sql = 'CREATE DATABASE '.$database;
-		$ret=$this->query($sql);
-		}
-    return $ret;
-  }
+	function DDLCreateDb($database)
+	{
+	    // ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
+	    $sql = 'CREATE DATABASE '.$database;
+	    $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
+	    $ret=$this->query($sql);
+		if (! $ret)
+			{
+			// On r�essaie pour compatibilit� avec Mysql < 4.1.1
+			$sql = 'CREATE DATABASE '.$database;
+			$ret=$this->query($sql);
+			}
+	    return $ret;
+	}
 
 	/**
 		\brief     	Liste des tables dans une database.
diff --git a/htdocs/lib/databases/pgsql.lib.php b/htdocs/lib/databases/pgsql.lib.php
index 972aee0d2fc64a35ea412bd82e7afee1dacb4fea..cecbc1d084502763898f6616021529d6a7b0725c 100644
--- a/htdocs/lib/databases/pgsql.lib.php
+++ b/htdocs/lib/databases/pgsql.lib.php
@@ -459,6 +459,17 @@ class DoliDb
     }
 	
 	
+	/**
+        \brief      Escape a string to insert data.
+        \param	    stringtoencode		String to escape
+        \return	    string				String escaped
+    */
+    function escape($stringtoencode)
+	{
+		return addslashes($stringtoencode);
+	}
+
+
     /**
         \brief      Formatage (par la base de donn�es) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS)
                     afin de retourner une donn�e toujours au format universel date tms unix.
@@ -591,54 +602,12 @@ class DoliDb
             \brief          Renvoie l'id de la connexion
             \return	        string      Id connexion
     */
-    function getConnectId()
+    function DDLGetConnectId()
     {
         return '?';
     }
 
 
-    /**
-            \brief          Renvoie la commande sql qui donne les droits � user sur toutes les tables
-            \param          databaseuser    User � autoriser
-            \return	        string          Requete sql
-    */
-    function getGrantForUserQuery($databaseuser)
-    {
-        // Scan tables pour g�n�rer le grant
-        /*$dir = DOL_DOCUMENT_ROOT."/pgsql/tables";
-
-        $handle=opendir($dir);
-        $table_list="";
-        while (($file = readdir($handle))!==false)
-        {
-            if (! ereg("\.key\.sql",$file) && ereg("^(.*)\.sql",$file,$reg))
-            {
-                if ($table_list) {
-                    $table_list.=", ".$reg[0];
-                }
-                else {
-                    $table_list.=$reg[0];
-                }
-            }
-        }
-
-        // Genere le grant_query
-        $grant_query = 'GRANT ALL ON '.$table_list.' TO "'.$databaseuser.'";';
-        return $grant_query;
-        */
-        return '';
-    }
-
-    /**
-        \brief      Retourne le dsn pear
-        \return     dsn
-    */
-    function getDSN($db_type,$db_user,$db_pass,$db_host,$db_name)
-    {
-        return $db_type.'://'.$db_user.':'.$db_pass.'@'.$db_host.'/'.$db_name;
-    }
-
-
     /**
             \brief          Cr�ation d'une nouvelle base de donn�e
             \param	        database		nom de la database � cr�er