2010-11-28 32 views
1

Comment gérer les privilèges de la colonne DB en datawindows pour éviter d'obtenir « SELECT permission refusée sur la colonne » ....privilèges de colonne de base de données de manutention dans datawindows

J'ai une datawindow qui affiche des colonnes de table, les utilisateurs/rôles Les autorisations sont différentes pour certaines colonnes et sont définies selon les règles de gestion au niveau de la base de données pour éviter de surcharger les autorisations d'application ...

le problème est que les utilisateurs connectés au système qui n'ont pas de "privilège de sélection" sur certaines colonnes recevront un message d'erreur "select permission denied on column xyz ..." et la datawindow ne récupérera aucune information avant de récupérer uniquement les lignes pour les colonnes ont "select" privileg e à ...

est-ce que quelqu'un sait comment gérer les permissions des colonnes avec datawindow pour des cas similaires?

Répondre

1

Il n'y a pas de moyen facile de gérer cela que j'ai vu.

Vous ne savez pas si vous cherchez des idées ou pas, mais cela dépend en fait du nombre de variantes possibles et de la dynamique de la solution.

Je n'ai jamais travaillé dans un magasin qui utilisait des autorisations au niveau des colonnes au niveau du SGBD, mais supposais qu'il y avait des groupes de colonnes bloqués pour divers rôles. S'il y avait une poignée (disons 3) de variations alors je ferais probablement juste trois versions de l'objet de données et permuterais le approprié avant la récupération. Sinon, l'option la plus difficile serait de modifier dynamiquement l'objet de données avant sa récupération, soit par rôle, soit en interrogeant les tables système. Une autre idée que je n'ai jamais essayée et je ne sais pas si cela fonctionnerait est de créer dynamiquement l'objet de données à partir de SQL, je crois que la fonction s'appelle createfromsql, et utilisez simplement select * from xyz mais ce serait seulement possible C'est uniquement pour l'affichage, sinon vous auriez beaucoup de modifications dynamiques pour mettre à jour l'objet de données et définir toutes les colonnes pouvant être mises à jour.

Bonne chance.