I've put together an SSIS package and deployed it to the SQL server. This package needs to be run on demand and needs to values passed into it, a batch number and the user ID of the person requesting the data. I've spent a fair amount researching how to pass the values in and can't find anything that I'd be able to use. The simplest would be to do xp_cmdshell from a stored procedure or call DTEXEC directly from the application, but these can't be used in this instance. The company has decided that xp_cmdshell is too much of a security risk and not every user is going to have the necessary permissions to call DTEXEC directly nor does the company have the necessary licenses for installing the binaries on every user's computer and having the package run locally.
All of this leads to the question: How do I pass values into the SSIS package?
I've looked at using a SQL Job as they can modify the variables within the package, but then I'm stuck with having to get the values into the Job and haven't found any way of doing this directly. I've seen it recommended to use a table and have the package go get values from there, but that leaves the question of how to handle multiple people trying to run the package at the same time.
Also, in case anyone is wondering what the package is doing, it is doing a bunch of Fuzzy Lookups and since we are only using SQL Standard, I don't have the option of doing the Fuzzy Stuff from within T-SQL via Master Data Services. Ideas?