Først - du skal bruge sys.objects i stedet for dbo.sysobjects. dbo.sysobjects er en SQL 2000-konstruktion, der kun er i SQL 2008 af bagudkompatibilitetsårsager. sys.objects indeholder en række for hvert brugerdefineret objekt med skemaomfang, der oprettes i en database, så du behøver slet ikke at filtrere din forespørgsel. sys.all_objects er et supersæt, der indeholder både system- og brugerobjekter.
For det andet - på tilladelsessiden - i SQL Server 2005 og nyere versioner er metadataenes synlighed i katalogvisninger begrænset til sikres, som en bruger enten ejer, eller som brugeren har fået en vis tilladelse til. Så din bruger skal have en vis tilladelse til de varer, den leder efter. Tildeling af VIEW DEFINITION til brugeren på skemaet/skemaerne i databasen ville tillade forespørgslen at fungere uden at give adgang til nogen data.