IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

F.A.Q. Business-ObjectsConsultez toutes les FAQ

Nombre d'auteurs : 15, nombre de questions : 101, dernière mise à jour : 10 juillet 2013 

 
OuvrirSommaire DesignerConnexion et Paramètres

Personnelle :
- En BO V5, elle est stockée dans le dossier LocData, (fichier PDAC).
- Elle est utilisée et/ou modifiée uniquement par l'utilisateur qui l'a créée.

Partagée :
- En BO V5, elle est stockée par défaut dans le dossier ShData, (fichier SDAC).
- Elle est utilisée et/ou modifiée par les utilisateurs qui ont les droits d'accès sur le fichier.

Sécurisée :
- Elle est stockée dans le domaine sécurité du référentiel (V5-6) ou dans le CMS (XI).
- Le superviseur attribue les droits aux utilisateurs sur ces connexions.
- Garantit la sécurité d'accès aux données.
- C'est le seul type de connexion qui autorise l'export d'univers.

Créé le 6 décembre 2007  par bastoonet

Le superviseur peut autoriser les utilisateurs à modifier le SQL avant l'exécution des requêtes.
Que se passerait-il si l'utilisateur décidait de modifier le SQL dans le but d'insérer, de modifier ou de supprimer des données dans la base de données ?

Le message d'erreur suivant apparaîtrait : "Select" est la seule commande SQL autorisée. (QPF0001).
En effet, BusinessObjects n'autorise que la commande SQL SELECT dans l'éditeur de requêtes et interdit les autres commandes telles que INSERT, UPDATE ou DELETE.

Que se passerait-il si l'utilisateur faisait appel, dans le SELECT, à une fonction contenant l'une des instructions DELETE, INSERT ou UPDATE (on suppose que la connexion utilisée dans l'univers permet d'exécuter cette fonction) ?

Dans notre exemple, la base de données utilisée est une base Oracle 9i.
Si l'utilisateur fait appel à une fonction contenant l'une des instructions INSERT, UPDATE ou DELETE alors le message d'erreur suivant apparaît :
Exception: DBD, ORA-14551: cannot perform a DML operation inside a query
ORA-06512: at "GEST_HARPEGE.TEST", line 5
State: N/A
Le message d'erreur affiché n'est pas un message d'erreur propre à BusinessObjects mais un message d'erreur propre au SGBDR Oracle. La même erreur se produirait si la requête était exécutée dans un autre logiciel tel SQLPlus.

Comment réagir face à ce risque
  • Utiliser dans la connexion de l'univers un utilisateur n'ayant qu'un privilège de lecture dans la base de données. BusinessObjects étant utilisé dans une cadre de restitution, ce privilège est nécessaire mais suffisant.
  • Privilégier un SGBD interdisant l'utilisation des instructions DML INSERT, UPDATE et DELETE dans un requête de type SELECT.
Créé le 10 avril 2008  par dcollart

Lors de la création d'un univers, il n'est pas possible de pointer sur des tables provenant de plusieurs bases de données différentes. En effet l'univers a une seule connexion qui pointe sur une seule base.
Une technique pour contourner le problème est donc de créer un DBLINK sur la BDD Oracle sur laquelle pointe l'univers, puis de créer une table dérivée pour récupérer les données avec la syntaxe suivante :

 
Sélectionnez

SELECT *
FROM TABLE@DBLINK

Le DBLINK sera créé sur la base où pointe l'univers avec le SQL suivant :

 
Sélectionnez

Create database link DBLINK
connect to username identified by password
using 'bdddistant'

Où username,password sont les informations de connexion et bdddistant le nom de la base de données distante.

Créé le 10 juillet 2013  par TomDuBouchon
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.