Dynamic Connection Strings in Reporting Services 2005

  • If you don't wanna embed Reports within the ReportViewer in a WebForm then you don't need to use the ReportViewer.

    This format should work. https://RSServer/Reportserver?/ReportFolder/ReportName&rs:Command=Render&server=ServerName&database=DataBaseName

    as long as your Report has ServerName and Database name parameters defined.

     

    Bilal

  • Hi Grasshopper,

    Thanks for the reply. The reason why I don't use Custom Datasources is because of the security configuration required. We use shared datasources executing on a specific SQL login. If we need to change the password of the reports login, we only do it in the shared datasources.

    We have often found that knowledgeable users exploit Windows Authentication on SQL server, which is another reason why I don't want to pass the Server Name and Database Name in a URL, it opens up the security even wider.

    I was hoping that there is a way that I can manipulate the datasource through a class library, and have the report extract the data from a specified database (and Server), without having to pass security information in URLs...

  • Adriaan,

    If we are concerned about Security, you can just hard code the username and password in the DataSource Credentials Tab.

    As far as DatabaseName and ServerNamer are concerned, you don't have to pass in the full database ans servername in the url.

    if your ServerName XYZDallas and DatabaseName is ABCDB

    just pass in "Dallas" and "DB" and hard cord their prefixes in the connection string. so the user would not know what the actual database name is...

    ="data source=XYZ" & Parameters!Server.Value & ";initial catalog=ABC" & Parameters!Database.Value

    If you want to maniplulate through a class library, you still are hardcoding server and database information in there. you will not have the luxury to pass in whatever u want.

  • Hi Grasshopper,

    I'm not shure how hardcoding the UserName and Password in the DataSource tab would improve the security, please explain.

    If you have a large number of reports, and the username and password that you use on the reports leaks out, you will have to change it for every report, making it a nearly impossible task, where as if you use shared datasources, you would only change a few datasources. This in my opinion is a major security risk.

    I am also very conservative with using patterns in database names, we typically try to stay away from it as it can become a limitation if your application scales out drastically...

  • being on your secure  firewalled intranet is ok.

    out in public on Internet, i don't want to send those in..

    But my main concern is the flexibility on having 1 report run against million server/databases as long as u have access to those servers from where the report is deployed.

  • I discovered the reason my url link was not working.  The parameters are case sensitive.

     

  • Isnt passing that information in the URL a security risk?  Why is microsoft trying to get away from shared data sources? That, in my opinion, is the most secure way to accomplish what you are doing here.

    If you merely change the datasource credentials, the outside world doesnt have a clue where your servers are etc.

  • Anybody knows how to do this with multi value parameters? My connection string is a URL. I call the report from asp.net app like this:

    <

    a href=http://SERVERNAME/Reportserver?/MYREPORT&XMLFILE=http://FOLDERNAME/41.xml&XMLFILE=http://FOLDERNAME/11.xml&rs:Command=Render

    target

    ="main">Click here to view the report

    </a>

    Thanks,

     

  • Hi All -

    How do you create a non-shared datasource? I'm trying to create a dynamic ds, but am running into the same issue as Steve.

    thanks

  • Actually the real bugger of this is coordinating credentials if your different databases have different user names and passwords for each datasource. Essentially I was using dynamic conn strings to associated development Report Servers with Development SQL Server databases, such that deploying the report to RS Server X would use SQL Server X etc (= IIF(Globals!ReportServerUrl =RS Server X, Then use DBX , else use DB-Y).. However unless your able to use integrated security for all of your databases and servers RS doesn't seem to like using uid and pwd in the conn string without notifying the credentials tab of your intentions.

    Has anyone else done something similar to this? with more sucess.

  • I think your post:

    "Now I need assistance passing the server and database parameter in the URL instead of requiring the user to complete."

    is exactly what I need to do. I would like to do this from the Report viewer control on a VB Windows form and have the app supply the server and database name.

    Did you ever figure it out?

  • Can sombody helps me out, How to read those connection string values from configuration file?

  • Hi

    I am also looking out for the same scenario, where in I want to pass User Name & Password dynamically to a report along with Server Name & Database name. Can this be possible If so can you please paste the sample code

    -Nanda

  • THANK YOU Bilal!!!!!

    I have spent 2 days looking for the answer! We have not done reporting services here before now (I am the "lucky one" that gets to do it first)

    Your answer helped!

  • If tried this, but the moment I type the =sign, I don't receive any data when I clik Refresh. Any ideas?

Viewing 15 posts - 16 through 30 (of 71 total)

You must be logged in to reply to this topic. Login to reply