Comment puis-je installer une source de données partagée sans informations d'identification dans SSRS
-
08-07-2019 - |
Question
J'utilise SQL Server 2005 avec Reporting Services. J'ai installé de nombreux rapports, certains utilisant des sources de données partagées et d'autres non. certains vont aux services Web, d'autres aux bases de données serveur SQL, et maintenant j'essaie de me connecter à une base de données DB2.
J'ai créé avec succès une source de données partagée et un rapport dans Visual Studio 2005. Je peux très bien extraire des données et les afficher dans mon rapport dans le concepteur. J'essaie maintenant d'installer le rapport et la source de données via le service Web SSRS (comme pour tous les autres rapports).
Le problème est que la plupart de nos sources de données utilisent Integrated Security. Pour cette source de données, j'utilise "Les informations d'identification ne sont pas obligatoires" car elles sont répertoriées dans la chaîne de connexion. Voici mon code d'installation:
Dim definition As New ServiceProxy.DataSourceDefinition
definition.ConnectString = connectionStringIncludingUsernameAndPassword
definition.Extension = "OLEDB"
definition.CredentialRetrieval = ServiceProxy.CredentialRetrievalEnum.None
ServiceWebService.CreateDataSource(dataSourceName, containingFolderFromRoot, True, definition, Nothing)
Cela fonctionne également très bien et ne génère aucune erreur et semble créer correctement la source de données dans ssrs. Mais quand je vais exécuter le rapport, j'obtiens cette erreur:
L'action en cours ne peut pas être terminée parce que la source de données de l'utilisateur informations d'identification qui sont nécessaires pour exécuter ce rapport ne sont pas stockés dans la base de données du serveur de rapports. (rsInvalidDataSourceCredentialSetting)
Mon rapport est correctement connecté à ma source de données et ma source de données est correctement définie sur des informations d'identification non requises. Il est donc identique à celui de Visual Studio. Je suis à court d'idées.
La solution
Le problème était multiple:
- le nom d'utilisateur et le mot de passe étaient répertoriés dans la chaîne de connexion au lieu d'être à l'intérieur du serveur
- le logiciel db2 connect installé sur le serveur de rapports était obsolète (8 au lieu de 9)
- le groupe d'utilisateurs 'DB2Users' n'avait aucun membre
Après avoir corrigé ces problèmes, le rapport fonctionne!