Prompted for credentials when using a shared data source with Report Builder 2.0 over the Internet with forms authentication - forms-authentication

SQL Server 2008 (not R2). I am trying to allow users to build and deploy SSRS reports on a reporting server that the users can only access over the Internet. I have created a custom forms authentication provider.
I can now connect to the reporting server over the Internet via either the report manager or report builder 2.0. What I would like to do is to provide the user with a shared data source which he/she can use in reports. I have created a data source with credentials stored on the server. Now, I can create a report and add the shared data source. However, when I try to add a data set, I get prompted for credentials for the data source. If I have access to the database server over the network, I can put in the credentials and everything works. However, when working over the Internet (the db server is not accessible from outside the firewall) it fails with "Login failed for ".
I think it's trying to connect directly to the database server when I do this rather than connecting through the report server and using the shared data source. If I use a shared model on the server instead of a data source, it works fine, but I'd like the flexibility of using a data source.
Is this possible? If not, does anyone know if it's different in R2/RB3? I don't have access to R2 to test.
Thanks in advance,
Josh

Related

Failed to login when creating DataSet from DataStore using Azure Machine Learning Designer

I'm new to Azure and its ML Designer. I have an Azure SQL Database set up with my Client IP allowed through the Firewall. I can connect using SSMS without issue using the server path and credentials Azure supplied.
I have set up a Machine Learning Resource and launched the Learning Studio.
Inside the Learning Studio I created a DataStore pointing to my Azure SQL Database and everything seems just fine:
Azure SQL Database DataStore
However, when I try to create a DataSet from that DataStore I am getting Login errors:
Login error when creating DataSet
In "More details" I see the following:
ScriptExecutionException was caused by DatabaseConnectionException.\n DatabaseConnectionException was caused by AuthenticationException.\n 'MSSQl' encountered connection erro with error code '18456' while opening connection to server ([REDACTED]), database ([REDACTED]). Either the database name is not valid or username and password is wrong. Exception class: '14'. HResult: x80131904.\n Failed due to inner exception of type: SqlException\n
I am sure the database name and login credentials are correct i.e. they work just fine when connecting from my SSMS. What else can this be? I've checked the Azure SQL Database profile - is there something here regarding security or access that I should be setting?
Firewall Settings
** UPDATE **
Solved this by going to SQL Server > Active Directory admin. There was nothing set here so I clicked Set Admin and then from the right panel scrolled down to the ML service I had set up. Once I saved it and then created a Dataset in ML I could see the data Preview just fine.
To get a preview of the dataset, it goes through Azure ML's service. If the only kind of restriction are IP restrictions (nothing around vnets/private links), then you can add Azure ML's IP ranges to your network settings.
Alternatively, you can choose to "skip validation" where Microsoft will not parse the data while trying to create the dataset, but this means preview won't be shown.
Furthermore, ensure that you have created a server-level IP firewall rule in the firewall settings and allowed access to the server, entered valid authentication details when creating the datastore, and specified a valid table when querying your database.
Note: I was able to connect successfully using above guidelines. Thanks.

After upsizing ms access database for distribution front-end what i have to do

I would like to know after upsizing ms access database to sql server successfully with my user name in the domain and windows authentication and linking access tables to sql server tables,
for distribution this front-end to other users in the domain what i have to do? Is enough give a copy of the front-end to other users and defining their user names and permissions in the sql server? Or it needs some vba code in ms access for defining linked tables and ODBC connection?
Yes, if the ODBC driver you use is installed on users' machines - and, of course, Access is installed.
Table links don't change. If you didn't use Windows authentication, however, tables had to be relinked using each user's credentials.

SSISDB ASP.NET "Login failed for user 'DOMAIN\PCNAME$'"

I am using Microsoft.SqlServer.Management.IntegrationServices in an ASP.NET web form to access an SSIS project in SSISDB. Testing locally on my own PC I am able to access the package from the test server and it runs fine.
My issue comes up when I try to run the site from the test server. The same test server hosts the site with IIS 7 and hosts the Sql Server database which stores the package with Integration Services. So like I said, the package is hosted on the server and when I run the site locally on my PC, all works fine.
When I run the site on test and try to access the package I get:
System.Data.SqlClient.SqlException (0x80131904): Login failed for user '[DOMAIN]\[PCNAME]$'.
I am using integrated security in my connection string:
SqlConnection connection = new SqlConnection(#"Data Source=[Test_Server];Initial Catalog=master;Integrated Security=True;");
IntegrationServices integrationServices = new IntegrationServices(connection);
My error comes up here when trying to connect.
I've tried adding '[DOMAIN]\[PCNAME]$' as a Sql login using Windows authentication with every permission I can think of. User mapping for database SSISDB has accessadmin, datareader, datawriter, owner, public, and ssis admin. I know not all of these should be needed, but I'm trying everything.
I went to SSISDB under databases, and gave the login permission to Connect, Execute, and Select.
Under Integration Services Catalogs I gave my folder, under SSISDB catalog, permission for the my Windows User ('[DOMAIN]\[PCNAME]$') login to Read, Execute Objects, and Read Objects.
I gave the SSISDataTransfer project permission for the Windows User to Read, Modify, and Execute.
I'm out of ideas and figure it's probably some IIS issue. It has Windows Authentication installed and set.
Anyone have any ideas? I've found posts about how to get the code to work, but nothing on connection specifics. Thanks!
i have had similar problem recently and i have worked with SSIS packages being used with web applications too. in my opinion you should use a custom user account to be used as your app pool account. and you will have to add this account to your database server. when running an app pool as local system or network service, the account being used for connection to a remote database server will be "DomainName\MachineName$" which will be different for every machine which tries to connect to your sql server. so instead of adding all these user names in sql, you will be better off using a custom user account.
Secondly looks like your web application does not run on the same machine as your sql server which i think will not work because you can invoke SSIS package from the same server only.
Another thing to try is to add a credential to sql server - in Security - Credentials in SQL Server management studio. This credential would be the authenitcated user that you are running it successfully under. Then in your SSIS package, in SQL Server agent, go into the job step and in the "Run As"drop down, select the new credential for your user that you created.

Unable to access ssrs reports from another machine using the URL in same network

I have created and deployed an SSRS report 2008, which I am able to access from the same machine using the URL. But I am not able to access the URL from another machine in the same network. Please suggest me what i have to do to access SSRS reports via URL from another machine in Local Area Network.
The ability to access an SSRS report is generally dependent on Windows authentication, which is controlled under the report manager's security tab. You can add or remove groups of users through the security interface. This would explain why some users can access it and others cannot. Also, when granting access, you must be sure the user has the Browser role enabled.
If it is a permissions issue, then SSRS should return a permissions error when you attempt to access it from the other terminal.
Therefore, you need to ensure that all intended users are in an appropriate user group and granted the appropriate permissions.
You can run the report by accessing report manager from your browser. Report manager url is the one we set up while installing and configuring ssrs.

SSRS 2008: ReportViewer does not have access rights to local Report Server

I'm trying to set up SSRS 2008 on my desktop machine for development purposes.
The following is working fine:
Report deployment on local server
Previewing the report in BIDS
Access to htpp://localhost/Reports panel
But when I point the ASP.NET Reportviewer to the Report URL, I get the following error:
The permissions granted to user 'NT-AUTHORITY\NETWORKSERVICE' are insufficient for performing this operation. (rsAccessDenied)
How can I get around this error? Is there any dialog where I can grant SSRS access rights to certain forms authentication roles? I've googled quite a bit on this, but what I have found so far was either outdated or quite confusing.
Edit: Several users of my web app are going to have access to the same database, so I need the UserID build-in field (User!UserID) to reflect the user's Forms authentication ID. I guess the only way to achieve this is making SSRS work with forms auth?
You web application is running as Network Service so that is the user you are trying to connect to Report Server as. You have several options. One, you can grant Network Service permission to execute the report you are trying to run. Two you can have your web application impersonate a windows user and give the correct users permission to the report. Three you can impersonate impersonate a different user when connecting to RS. I believe to do the last one you will have to write some extension code for the viewer to tell it how to impersonate before connecting, but for the other two there would be no code change.
You could also look into using Report Server in Forms auth mode if your web site is not an internal site, but this is more complicated.
EDIT for 2nd Question:
Yes, you will need each user to be unique when they access RS so you will need to use Forms Auth or windows auth or write your own custom authentication extension.

Resources