none
Appel fonction dans clause GROUP BY d'une vue RRS feed

  • Question

  • Bonjour,

    J'ai deux vue

    CREATE VIEW MaVueAvecRegroupement
    AS
    SELECT MaColonneA, MonResultat = dbo.MaFonction(MaColonneB)
    FROM MaTable
    GROUP BY MaColonneA, dbo.MaFonction(MaColonneB)

    et

    CREATE VIEW MaVueSansRegroupement
    AS
    SELECT MaColonneA, MonResultat = dbo.MaFonction(MaColonneB)
    FROM MaTable

    Si je veux consulter les données de ces vues avec un compte sql qui appartient au rôle de base de données db_datareader, cela fonctionne correctement pour la vue sans regroupement mais me génère cette erreur avec la vue avec regroupement :

    Msg 229, Niveau 14, État 5, Ligne 1
    L'autorisation EXECUTE a été refusée sur l'objet 'MaFonction', base de données 'Developpement', schéma 'dbo'.

    Cela ne me semble pas très logique sachant que les deux vues appellent la même fonction.

    J'ai cette erreur sous Sql Server 2012 mais cela semble fonctionner correctement sous Sql Server 2005 et 2008.

    Pensez-vous qu'il s'agit d'un bug de Sql Server 2012 ?

    Merci d'avance pour votre aide.

    Cordialement,

    Olivier


    mercredi 10 avril 2013 11:50

Réponses

Toutes les réponses