i have a hyperlink in one of the columns (in tablix) in an ssrs report which points to some server where a dump of documents reside..the hyperlink is appended with a doc_id which helps locate that doc and to invoke it from that server..now this works fine if the ssrs report runs with the current windows logged in user and when the same logged in user is also set up beforehand on that document server where the ssrs hyperlink points to..and this was in dev env..
going ahead in a controlled env, there would only be one system a/c which will be set up on that doc server and regardless of who the logged in windows user is who runs the report; access to the docs on that doc server will only be given to that sys a/c..so i passed this same sys a/c (which is set up on that doc server) in the data source in report mgr --> credentials stored securely in report server..and thought that these credentials will be
picked while navigating to that doc server and the doc would be opened..but this doesn't seem to happen and it doesn't invoke the document...says invalid credentials..so i think it's picking my logged in credentials here and not the ones of the sys a/c that i entered in data source...(pls note here, the doc server url doesn't contain the report server / report manager url components..it's a different url and is used to only open the doc..so i don't think i can pass user credentials to that url like &dsu:Datasourcename=username&dsp:Datasourcename=password..may be i am wrong and i can pass? but don't think that's secure even if it's an option?)
alternatively, i thought this could be achieved by changing the execution account to this system a/c, under reporting services config mgr..but then we only have ssrs client tools installed..so can't change server settings..and just for this one requirement, nobody would accept my request to change the execution account...also don't know if changing exec account is even a solution for this?
i hope the question is clear..please give some work arounds..i'm stumped and not getting required help anywhere..
note: as another work around, i asked if a group can be set up on that doc server..and when all the users accessing the report are added to the group, they can open the doc after navigating from ssrs report...but the idea giving access to a group was rejected...they can only give access to this sys a/c...
Related
My error is below:
The report server cannot process the report or shared dataset.
The shared data source 'XXX' for the report server or SharePoint site is not valid.
Browse to the server or site and select a shared data source. (rsInvalidDataSourceReference)
Right. I've checked all 3 data sources and they connect fine. I've deleted the report and data sources and deployed them again but still the error. I've used Notepad++ to check for the reference XXX in any of the files and still nothing.
These options are both checked.
Always run this report with the most recent data
Do not cache temporary copies of this report
Under Snapshot Options > Allow report history to be created manually I get a warning of Credentials used to run this report are not stored. Could this be a reason?
My data sources are setup like:
I have read other similar posts but no luck.
Thanks
A restart of report server resolved this particular issue for some annoyingly odd reason
Go to your Datasets and check the Data Source being used if it's pointing to the correct data source
When a user tries to subscribe to a report created via ReportBuilder they receive the following error: "Subscriptions cannot be created because the credentials used to run the report are not stored, or if a linked report, the link is no longer valid."
As far as I can tell the credentials ARE being stored, but report server seems to be ignoring them. We are able to subscribe to non-ReportBuilder reports using the same data source just fine.
We have been trying to track down the problem for several weeks now and haven't gotten anywhere. Any help would be greatly appreciated.
The report uses a shared data source on its model. This is the only model defined on the server:
The model uses the following data source defined on the server (this is the same data source that other reports use, and it's the only data source stored on the server.):
The Data Source is set to store the credentials on the report server (you can see the results of testing the connection at the bottom of the screenshot):
You cannot subscribe to a Report Builder report that uses a model as a data source if the model contains model item security settings. Could this be the cause of your issue?
I need to run a MS Access job as an automated task. I know Access isn't really built for this type of task, but I have MOST of it working except for one, critical part. In short, this is what it's supposed to do:
Generate a PDF report for a user
Generate an email for the user
Attach the PDF to the email
Send the email via SMTP
It works if a user is logged into a desktop session. The process needs to run as an automated process, without requiring a user to be logged in. Using Powershell and the built-in Task Scheduler (Windows 7 Ultimate, 64-bit), I'm able to get it running on schedule. But the Access code fails when it tries to save the PDF. Through experimentation, I learned that I need to save to the "My Documents" folder, and I have the process running as "me", but I keep getting the same error message:
8/18/2014 4:00:17 PM Report Error in <method name>
2302
-1
0
<project name> can't save the output data to the file you've selected.
MTS
So I suspect that if I select the correct location to save the PDF, it will work. Is there a special location that the system and/or Task Scheduler (TS) can save to? Is there a special way to share a folder that it will allow TS to write to it (without requiring a user to be logged in)?
I personally usually save all these types of files/reports into the %TEMP% folder, which seems appropriate for this application since it is only to store it until it is emailed.
I haven't had any permission issues saving into this folder yet.
If you're unfamiliar with %TEMP% you can search for Environ variables and there are usually different useful file paths to common folders used by the system e.g. %APPDATA%,%USERPROFILE%` etc
Thanks for all the input. After exhaustive testing--based on the response from ashareef above--I've demonstrated that it can't be done. I tried saving to the following environment variable locations:
TEMP
APPDATA
LOCALAPPDATA
PUBLIC
USERPROFILE
I also tried:
C:\Users
C:\Temp
C:\Users\<my user name>\Documents
And none of those worked if I set the task to run whether I was logged in or not:
One location does work, but only if I'm logged in and I set the task to run only when I'm logged in:
C:\Users\<my user name>\Documents
To sum up:
Saving a file from Access
Running as a Scheduled Task
Whether you're logged in or not
Is not possible! So here at work, we're going with Plan B. Thanks for your help!
I am using SSRS 2008 R2 and Report Builder 3.0. I set up a shared data source via the browser (http://myserver/reports/) wherein the "credentials are stored securely in the report server" to use with multiple reports. Testing the connection via the browser works.
Now, I fire up Report Builder 3.0. I start a new report and "Add Data Source". I select the "Use a shared connection", browse to the server, and select the above data source. Click "Test Connection" and all is well.
I then try to "Add Dataset". In the dialog, I select "Use a dataset embedded in my report", I select my data source added above, type in the SQL string and click OK. The "Enter Data Source Credentials" appears. No matter what permutation of valid domain (like the domain admin account and others) or SQL Server (like the 'sa' account) credentials plus checkboxes I use, I get an "Unable to connect to data source".
Security settings on the shared data source allow BUILTIN\administrators and domain\administrator all roles. The data source does work, as some legacy migrated reports run fine. Report Builder says the data source connects okay. But, I cannot create new reports, nor modify existing ones.
Any suggestions?
After much gnashing and wailing seems like Report Builder uses information in definitions in Report Server to then run queries locally by itself, and not through Reporting Services.
My mistaken belief was that when I did something like Refresh Fields when setting up a Dataset, Report Builder was going through Report Services to get the relevant output and/or metadata. This seems to not be the case.
I had defined the connection string of the shared data source as Data Source=(local);Initial Catalog=<database name>. Now, this works when you are in Reporting Services' browser interface, but Report Builder seems to read the connection string and use it for itself. Reporting Services on my local development machine does not have any of the setup on the target server running these reports, so anything I would use will fail.
Changing the connection string to Data Source=<server name>;Initial Catalog=<database name>, instead of localhost, allowed Report Builder to work properly. (RB still popped up "Enter Data Source Credentials". I used my Windows credentials, which is a valid login on the target server.)
To accomplish what you are attempting, it sounds like you will need to use windows integrated security.
According to MSDN stored credentials are not passed to client applications. They are for use only by the report server for things like scheduled reports.
http://msdn.microsoft.com/en-us/library/ms159736.aspx
I can tell you that the prompt "Enter Data Source Credentials" is looking for SQL authentication, not domain accounts.
Outstanding question and answer. I really appreciate your careful description. I had the same problem. In my case the problem was that I was accessing Report Builder from a machine connected to my home office by VPN. I guess because I was outside of the Windows network of the home office, RB couldn't authenticate me. Working with a Remote Desktop connected to a machine at the office allowed me to side-step the problem. Your and #RichShealer's answers reminded me that when running the reports from the browser, they're being served up by an inside server machine. This is not the case when running RB, a desktop app.
I'm trying to open a form from an url. This ms access database will be hosted on a shared folder in an network, and the costumer has asked me if it's possible to open an database form (i'll have to pass an ID).
If this were in web environment i would do this without any problem, but honestly in ms access i have no idea how to do this.
Can someone help me?
Have a look at Register protocol and Registering an Application to a URL Protocol. They have a example registry file on how to register a protocol:
REGEDIT4
[HKEY_CLASSES_ROOT\foo]
#="URL:foo Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\foo\shell]
[HKEY_CLASSES_ROOT\foo\shell\open]
[HKEY_CLASSES_ROOT\foo\shell\open\command]
#="\"C:\\Program Files\\Application\\program.exe\" \"%1\""
You can change the last line to something like:
#="\"C:\\Program Files\\Office\\access.exe\" \"C:\\path\\to\\your\\db.mdb\" /cmd \"%1\""
If you URL is foo:241245, the following command is called:
"C:\Program Files\Office\access.exe" "C:\path\to\your\db.mdb" /cmd "241245"
In Access, the commandline arguments are returned by the Command function:
In the direct window:
?Command
241245
The database can be opened from a URL like any other file:
file://server/share/path/database.mdb
This won't work if the database has user-level security on it though. I've only ever done that by using a windows shortcut.
If you're not using user-level security and the URL works, you can set the desired form to open automatically on load by going to the Access Options screen and the Current Database tab, then selecting the desired form from the Display Form drop-down list.
Oops - I just noticed that you said you'd need to pass an ID. I don't know if that's possible using a URL.
Open your Access database from the network location (i.e., with a UNC path, not from a drive letter, or locally).
Navigate so you can see the form listed in your database.
Drag the form to your desktop. A shortcut directly to the form will be created there.
I don't think this is a good idea, though. It's a substitute for a user interface in your Access application. Additionally, your description of the problem sounds like you're intending to have multiple people opening the same database file. This is a really bad practice -- best practice is for the database to be split (back end with data tables only on the server, and individual copy of the front end with forms/reports/etc. on each user's workstation), and more than one user should never be opening the same front end at the same time.