Disons que je TableA
qui a 5 colonnes:SQL Server sélectionner des colonnes uniquement avec des autorisations
Col1
Col2
Col3
Col4
Col5
et je suis connecté à SQL Server via User1. Cette Utilisateur1 dispose des autorisations pour sélectionner col1, col2, col3 ne
je peux faire
select *
from information_schema.COLUMN_PRIVILEGES
et boucle pour toutes les colonnes de retour et de construire mon instruction select, mais j'ai plus de 500 instructions select dans mon projet (BIG HR Management System), j'ai donc besoin d'un autre moyen avec moins de modification de code.
Maintenant, si j'essaie
Select * from TableA
il renvoie une erreur.
Alors, comment puis-je sélectionner uniquement les colonnes avec des autorisations sans changer tout mon code?
Modifié: Je veux une méthode pour remplacer exception SQL lors de la sélection d'une colonne sans autorisation, il suffit de retourner nulle et montrer aucune exception
Édité 2: - select * était juste un exemple, d'être plus simple: si j'ai 2 utilisateurs SQL Server, le premier a la permission dans col1 - col3 le second est autorisé à col4-col6 quelle est la meilleure méthode pour sélectionner des colonnes avec l'autorisation de chaque utilisateur
Fixez votre application pour qu'elle ne récupère que les colonnes nécessaires. Vous devrez peut-être construire les requêtes en fonction de ce à quoi les utilisateurs ont accès. –
Vous devriez toujours sélectionner uniquement les colonnes dont vous avez besoin plutôt que d'utiliser '*', donc je ne vois pas le problème. –
Ce projet a environ 10 ans de développement, il me faudra un mois pour corriger toutes les requêtes – mothana