Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is the msdb database for standalone SSIS Servers

I am working on a DWH application. The server I was granted access to only has SSIS installed with no database engine. I am getting errors like:

The EXECUTE permission was denied on the object 'sp_ssis_listfolders', database 'msdb', schema 'dbo'.

I need to verify the permissions on the database engine and on the msdb. Is there a way how to find which server is configured to host the msdb database?

like image 661
Moslem Ben Dhaou Avatar asked Feb 24 '17 11:02

Moslem Ben Dhaou


People also ask

Where is MSDB database?

The msdb database file (msdb. mdf) and msdb log files (msdb. ldf) are located in the Program Files\Microsoft SQL Server\Mssql\Data directory. Due to the amount of configuration information stored in the msdb database, the database should be routinely backed up.

Where are MSDB SSIS packages stored?

The default folder is the Packages folder, located in %Program Files%\Microsoft SQL Server\100\DTS. The MSDB folder lists the Integration Services packages that have been saved to the SQL Server msdb database on the server.

What is the SQL MSDB database?

The msdb database is used by SQL Server Agent for scheduling alerts and jobs and by other features such as SQL Server Management Studio, Service Broker and Database Mail. For example, SQL Server automatically maintains a complete online backup-and-restore history within tables in msdb.

Can we start SQL Server without MSDB database?

Can I run SQL Server without a MSDB database? A SQL Server can run for a short period without an online MSDB database as most common SQL Server activities such as querying a user database do not require MSDB. This might occur during restore of MSDB or if the database cannot be loaded due to corruption.


2 Answers

Found it!

It is hidden in a configuration file in the installation folder of SSIS. Browse to C:\Program Files\Microsoft SQL Server\120\DTS\Binn then look for the file called MsDtsSrvr.ini.xml. The server name is just sitting there, and can be changed as you wish.

MsDtsSrvr.ini.xml

like image 66
Moslem Ben Dhaou Avatar answered Oct 14 '22 05:10

Moslem Ben Dhaou


After reading your comments, You have to go to the windows scheduled task and read the command running the Dtexec utility

The command will look like the following:

C:\..\dtexec /SQL "\Package1" /SERVER "Test\Test" /USER "blabla" /PASSWORD "blabla"

The string after /SERVER keyword is the server name where the packages are located

if the package are not located in a SQL server and are executed from a package file the command will look like:

C:\..\dtexec /F "C:\Packages\Package1.dtsx"

Then go to the package open it and read connection strings from it.

Read more about DtExec utility in these articles:

  • Dtexec Utility MSDN article
  • http://www.sqlshack.com/ways-use-execute-sql-server-integration-services-packages/

Info about the exception Thrown

In SQL server, The user account associated with the connection in the Execute Package needs to be granted the db_ssisoperator role in the msdb database, otherwise it can’t find the other package that is being called.

And it might needs also to add yourself to the roles below:

  • db_ddladmin
  • db_ssisadmin

You can find other suggestions in these links:

  • https://pacheco.wordpress.com/2011/11/22/situation-an-s/
  • http://dbdevs.blogspot.com/2015/02/granting-access-to-ssis-server.html
  • http://www.sqlservercurry.com/2009/07/resolving-error-execute-permission.html
  • https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b1421866-1bd6-4978-a04c-75e2f8c7d69a/permission-issue-or-something-else?forum=sqlintegrationservices
like image 33
Hadi Avatar answered Oct 14 '22 05:10

Hadi