Stored procedure runs OK from SSMS but fails from job scheduler

I have a stored procedure that queries the sysmanagement_shared_registered_servers_internal table in MSDB and performs various other queries from the servers listed in that table via linked servers.  I have created a login called SQLInfo_user. When
I run the stored procedure from SSMS with the connection as SQLInfo_user, everything works as designed. However, when I run the job from the job scheduler with SQLInfo_user as the "run as user" parameter, it fails with "Executed as user: SQLInfo_user.
The SELECT permission was denied on the object 'sysmanagement_shared_registered_servers_internal', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (Error 229).  The step failed."  The login SQLInfo_user has full read and select permissions to
that table in the MSDB database.  Any suggestions?  Thanks

Try instead of  "run as user", make that user owner of job. Also, make sure your that user is in linked server for servers that you are connecting has equivalent user on the the destination servers. 
Best Wishes, Arbi; Please vote if you find this posting was helpful or Mark it as answered.

Similar Messages

  • SSIS package works in development environment but fails when job scheduler executes, file path invalid

    SIS package works in development environment but fails when job scheduler executes, file path invalid
    Relatively simple package to get OLE-DB connection to MS FoxPro 9.0 DB
    The failure in the job log states that the path is invalid its a network path (\\192.168.1.xxx\foldername) this has been run several ways with the remote computer being mapped as a network drive and through the \\ notation described above.
    Thinking it was a security issue between the SQL agent account and my account I tested by subsitution myself as a proxy account for the agent when running this job, again same result failed on network path.
    One issue I see is that the remote computer is running Server 2000 (legacy software incompatable with newer versions) 
    Is it possible that this is a security issue, since if i understand correctly the current MS domain security model didn't exist until Server 2003.

    Hi REIData,
    Have you got the issue resolved? Based on your description, please make sure the target folder is shared properly. If the computer on which the SQL Server Agent job runs doesn’t join the domain as the server that hosts the shared folder, you have to share
    the folder with everyone by adding “Everyone” to the people list on the File Sharing page of the folder and assign "Read/Write" permission to it.
    Regards,
    Mike Yin
    TechNet Community Support

  • Stored procedure runs fine from SSMS but fails when called from the C# app

    I'm using SS Express 2012 so I doubt I have all possible debugging capabilities at my disposal, although I'm still trying to figure this out myself.
    The compiled C# application has logging to insure that the the SP is being invoked, the appropriate line of code is  definitely being reached. The logging always reports 'success' suggesting that the SP was successfully executed (and no exception is thrown
    to the C# app), but the indexes aren't getting rebuilt (I have a fragmentation query proving they are not rebuilt). Yet it runs successfully if I
        (1) set a breakpoint in the C# app and step through the code line by line OR
        (2) run the SP from the SSMS GUI.
    The fragmentation query confirms sucess for both 1 and 2.
    -I can't rely on the GUI because I want to run this overnight immediately after the C# app is finished inserting new records.
    - The SP loops through all the tables, and all the indexes in each table, checking for fragmentation and rebuilding any indexes over 7% fragmented.
    ALTER Procedure [dbo].[usp_RebuildIndexes]
    AS
    Declare @fetch_TableName NVARCHAR(256)
    DECLARE Cursor_Tables CURSOR FOR
    SELECT Name FROM sysobjects WHERE xtype ='U'
    OPEN Cursor_Tables
    While 1 = 1 -- Begin to Loop through all tables
    BEGIN
    FETCH NEXT FROM Cursor_Tables INTO @fetch_TableName -- fetches the next table
    if @@FETCH_STATUS <> 0 break
    print '---------' + @fetch_TableName
    Declare @fetch_indexName NVARCHAR(256) -- loops through al indexes of the current table
    DECLARE Cursor_Indexes CURSOR FOR -- Looking for indexes fragmented more than 7 percent.
    SELECT name as indexName
    FROM sys.dm_db_index_physical_stats (DB_ID(DB_Name()), OBJECT_ID(@fetch_TableName), NULL, NULL, NULL) AS a
    JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
    Where Name is not null and avg_fragmentation_in_percent > 7
    OPEN Cursor_Indexes
    WHILE 1= 1 -- Begin to Loop through all Indexes
    BEGIN
    FETCH NEXT FROM [Cursor_Indexes] INTO @fetch_indexName
    if @@FETCH_STATUS <> 0 break
    Declare @SqL nvarchar(2000) = N'ALTER INDEX ' + @fetch_indexName + ' ON ' + DB_Name() + '.dbo.' + @fetch_TableName + ' Rebuild'
    print @Sql
    Begin TRy
    Execute sp_executeSQL @sql
    End Try
    Begin Catch
    Declare @err nvarchar(2000) = ERROR_MESSAGE();
    throw 51000, @err, 1
    End Catch
    End -- Ends looping through all indexes
    CLOSE [Cursor_Indexes]
    DEALLOCATE [Cursor_Indexes]
    End -- Ends looping through all tables
    CLOSE Cursor_Tables
    DEALLOCATE Cursor_Tables
    foreach (objDB DB in oUserPrefs.DBs) {
    report += DB.Real_Name;
    if (DB.cn == null) DB.cn = sqlCn(DB.Real_Name, SystemInformation.ComputerName);
    try {
    if (DB.cn.State != ConnectionState.Open) DB.cn.Open();
    } catch (Exception ex) {
    report += " - Failed because can't open a connection.\r\n";
    continue;
    DB.OpenedAConnection = true;
    DataTable dt = null;
    try {
    dt = oParam.fillDt("dbo.usp_RebuildIndexes", DB.cn, null);
    } catch (Exception ex) {
    report += " -failed because " + ex.Message + "\r\n\r\n";
    continue;
    report += " - success.\r\n";
    DB.LastTimeRebuiltIndexes = DateTime.Now;

    Your proc is a bit of a mess and hard to read. This should get you what you need though. I added a little logic in the middle that determines if the index should be reorged, or rebuilt.
    You were right that my script was too messy and I used your code/logic to rewrite mine. Thanks! I tried it this morning and it worked fine, but I will have to see how it runs overnight to be sure.
    Here's the weird thing. My original code should have worked. In fact I'm actually using it in 3 c-sharp apps each of which has 3 to 7  Express 2012 databases (about 10 million records per database). For about a month it's been working fine on two of the
    apps. Furthermore this morning I used a commercial file-comparison tool to verify that the 3rd app has been running an identical version of the SP. So I'm at a total loss as to what went wrong in the 3rd app.
    Here's my rewrite.
    Alter Procedure [dbo].[usp_RebuildIndexes]
    As
    Declare @Messages Table(Msg nvarchar(2000))
    Declare @IndexName nvarchar(256), @TableName NVARCHAR(256)
    DECLARE Cursor_Indexes CURSOR FAST_FORWARD FOR -- GEt a list of all indexes for all tables.
    select idxs.name as indexName, o.Name as TableName
    from sys.indexes idxs
    inner join sysobjects o on idxs.object_id = o.id
    inner join sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL,NULL,NULL) as stats
    on stats.object_id = idxs.object_id and stats.index_id = idxs.index_id
    where xtype = 'u' and idxs.name is not null And avg_fragmentation_in_percent > 7
    OPEN Cursor_Indexes
    While 1 = 1
    BEGIN
    FETCH NEXT FROM Cursor_Indexes INTO @IndexName, @TableName
    if @@FETCH_STATUS <> 0 break
    Declare @SqL nvarchar(2000) = N'ALTER INDEX ' + @IndexName + ' ON ' + DB_Name() + '.dbo.' + @TableName + ' Rebuild'
    insert @Messages(Msg)VALUES(@sql)
    Execute sp_executeSQL @sql
    End
    CLOSE [Cursor_Indexes]
    DEALLOCATE [Cursor_Indexes]
    Select * From @Messages

  • Multiple stored procedure run across clusters

    Hi there,
    Currently we are having a single Oracle 11g instance. All our stored procedures are run on this database either directly from within the database (DBMS_JOB) or called externally from front-end java web apps.
    The question is we now have to cater for scenarios where there will lot more avenues (other java apps) calling the stored procedure and we want to provision for such scenarios without impacting the performance or agreed upon throughput back to the calling application.
    One option I read was about clustering (RAC) and how this can be configured at the database level to transparently cater to a huge volume of stored procedure calls to the database without affecting (requiring changes on the calling entities). So the java front end apps will only refer to a single database but Oracle RAC configured for the database will handle the heavy load scenario in seamless and transparent fashion across the clusters
    We don't want to split the execution of one single stored procedure run into multiple process for performance we have that part covered with optimizing the queries of the stored procedure
    but we want to provision for a scenario where multiple apps can spawn calls to the stored procedures simultaneously and the database is efficient about handling these parallel stored procedure invocations and does not overwhelm under the pressure of large volume of stored procedure run causing degradation of stored procedure runtime/response time.
    Please provide your thoughts.

    If those stored procedures are making DML calls against more-or-less the same data, you will be introduce contention.
    In a single instance (non-RAC) contention is within the SGA (buffer_cache, shared_pool, latches, enqueues). If the application is not scalable within the single instance, you will likely make performance worse when running it in RAC.
    So, you must first evaluate how it works (or would work) in a single instance database -- find out if it scalable merely by adding hardware. If it is scalable but your current hardware is limited, you can consider RAC. If it is not scalable and you have serialisation or contention, performance would be worse in RAC.
    Hemant K Chitale

  • How to create a stored procedure that accepts an array of args from Java?

    I am to be creating a stored procedure that accepts an array of arguments from Java. How to create this? thanks
    Sam

    Not a PL/SQL question really, but a Java one. The client call is done via ThinJDBC/OCI to PL/SQL, This call must be valid and match the parameters and data types of the PL/SQL procedure.
    E.g. Let's say I define the following array (collection) structure in Oracle:
    SQL> create or replace type TStrings as table of varchar2(4000);
    Then I use this as dynamic array input for a PL/SQL proc:
    create or replace procedure foo( string_array IN TStrings )...
    The client making the call to PL/SQL needs to ensure that it passes a proper TStrings array structure.. The Oracle Call Interface (OCI) supports this on the client side - allowing the client to construct an OCI variable that can be passed as a TStrings data type to SQL. Unsure just what JDBC supports in this regard.
    An alternative method, and a bit of a dirty hack, is to construct the array dynamically - but as this does not use bind variables, it is not a great idea.
    E.g. the client does the call as follows: begin
      foo( TStrings( 'Tom', 'Dick', 'Harry' ) );
    end;Where the TStrings constructor is created by the client by stringing together variables to create a dynamic SQL statement. A bind var call would look like this instead (and scale much better on the Oracle server side):begin
      foo( :MYSTRINGS );
    end;I'm pretty sure these concepts are covered in the Oracle Java Developer manuals...

  • I just installed a new Lynksys router and now can not print from iPad but can from iPhone

    i just install a new Lynksys router now i can't print from iPad but can from iPhone.  with iPad can't find printer.  if i reinstall printer on the router it will print 1-3 times then can't find printer but i can print from iPhone

    What model, version Linksys router? Is the firmware up-to-date?
    What iOS levels are you running on iPad, iPhone?
    What make, model printer are you using? Is the firmware up-to-date?

  • Printer will print from ipad but not from laptop.

    Printer will print from ipad but not from laptop. No previous problems printing from laptop. HP ENVY 110 series;

    Hi Wpbpatfl,
    Have you tried running the HP Print and Scan Doctor? It is a quick and easy tool that diagnoses and resolves many printing, scanning, and connectivity problems. Check out the link below for details on downloading and running the tool:
    http://goo.gl/8NZ0e
    If I have helped in any way, just click the Kudos star on the left. Also, if your issue has been resolved, don't forget to select Accept as Solution

  • Delete contacts from icloud, but not from iphone

    I want to delete all my contacts and calendar appointments from iCloud, but not from my iphone, and i still want to have iCloud turned on in the future.
    I have tried to delete the iCloud account from my iphone but when i log in to iCloud.com from a computer the contacts are still there even though i deleted the iCloud account.
    How do i remove these things only from iCloud?

    I fixed it, i had to turn off the syncing of the contacts and the calendar on the phone and then delete them from iCloud. Obviously if i turn on the syncing of these items again the contacts and calendar appointments will reappear in iCloud.
    So problem solved.

  • Want to delete mails from Thunderbird but not from the server?

    Hi,
    Please tell me how to configure the settings of Thunderbird so that if i delete any mail from Thunderbird that mail would be delete only from Thunderbird not from server. I'm using IMAP configuration for all my mail accounts and I'm using Thunderbird in my laptop and tablet both.
    Currently i'm using Thunderbird 24.4.0 and i just want to delete my useless mails from Thunderbird but not from the server without using pop-3 settings.
    Actually the reason for this Question arises because whenever i use to uninstall and reinstatement Thunderbird, i use to take "profiles" as a back up and its size is increasing day by day that is making a big issue to me as i cant take a back up of such a big size file.

    Imap mail accounts keep the emails on the server and you see a remote view of those emails and folders.
    When you subscribe to see a folder, the headers are downloaded, when you select an email to read, the entire folder is downloaded to a temp cache facilitating quicker access. If you synchronize folders, then a copy of that folder is downloaded to an mbox file in your profile, so that you have a copy of the server folder. When you make any changes to a synchronized folder, read an email, delete or move etc, then Thunderbird will resynchronize with the server to update the server. A synchronized folder allows you to work in 'offline' mode and this is the best time to perform a backup as you know there is a temporary stop on synchronizing as you are offline. They will resynchronize when you go back into 'online' mode.
    So, with IMAP mail accounts, the folders you see in Thunderbird are the same folders on the webmail server. If you make any changes via Thunderbird or webmail then you are changing the same folder. You cannot delete an email without deleting it from the server, they are one and the same.
    What you can do is move/copy an email into Local Folders and delete the one on the server. The Local Folders emails are kept in your Profile on your computer, these folders/emails are not on the server, unless you chose to keep a copy of them on the server.
    Pop mail accounts cannot see the folders on the server. They only access the server Inbox folder and download emails not previously downloaded to the mail account Inbox in Thunderbird. These emails are kept on your computer in your profile folder. You can select to keep a copy on the server or not. You can choose to delete emails off your computer and off the server or not.
    If the mail account is gmail , have you subscribed or even synchronized to see the 'All Mail' folder ? Gmail's all Mail folder is their Archive folder, it keeps a copy of all of your non-deleted emails. So, you do not need to subscribe to see this folder as it only shows you what you can already see in other folders. It doubles the disc space.
    Please read section on 'All Mail' at this link.
    * http://kb.mozillazine.org/Using_Gmail_with_Thunderbird_and_Mozilla_Suite
    You do not have to download/synchronize the entire folder. You could select to only synchronize the most recent xx days of emails.
    see info here:
    * https://support.mozilla.org/en-US/kb/imap-synchronization#w_configuring-synchronization-and-disk-space-usage

  • Full page prints from iPhone but not from iPad using photo app with AirPrint ?

    Full page prints from iPhone but not from iPad using photo app with AirPrint ? iPad only prints 4x6 on full size paper. It's an HP 8600.

    I also have this problem printing photos from an iPad to an Epson WF-2540 printer. It prints only 4x6 and without border (so print starts at extreme top left corner of paper). Borderless printing is not selected on printer. Printing a square photo just crops to 4x6 size.

  • Delete Apps from MacBook but not from iPhone

    How can I delete Apps from iTunes but not from iPhone 3GS when I Sync them? The moment I delete the Apps from iTunes and then sync iPhone, iPhone deletes them as well.
    Please assist.

    If you intend to ever sync your phone with your Macbook then you can't delete the app from your Macbook, otherwise the apps will also delete from your iPhone (as you've discovered).

  • HT4356 Why is printer not print from pc but prints from ipad?

    PRinter will print from iPad but not from pc why? Printer 8600 plus

    Reboot your router. Make sure your PC is on when you reboot the router.

  • I just installed a multifunction Lexmark Pro905 printer and it will not print from Firefox, but will from Explorer????

    I just installed a multifunction Lexmark Pro905 printer and it will not print articles from Firefox, but will from Explorer??? Are there settings in Firefox to solve this??

    When you initiate printing with {Ctrl + P}, are you able to select that printer in the Printer - Name box?
    http://kb.mozillazine.org/Problems_printing_web_pages

  • I am not able to login to Gmail past 2 weeks, before that I am, But still i can able to login gmail from chrome but not from Firefox

    I am not able to login to Gmail past 2 weeks, before that I am, But still i can able to login gmail from chrome but not from Firefox
    getting following error
    "Oops! Your browser seems to have cookies disabled. Make sure cookies are enabled or try opening a new browser window. [?] "
    Please help me

    The support article http://mzl.la/1BAQKUb might help you.

  • TS2621 I can access yahoo mail from safari but not from the iphone ipad mail icon after changing password

    I can access yahoo mail from safari but not from the iphone ipad mail app after changing my password

    Go into your settings and remove the account. Add the account again with your new password.
    Best of luck- K.

Maybe you are looking for

  • Issues in Creation of Sales Contract Order VA41

    Dear Experts, I had been using BAPI_CONTRACT_CREATEFROMDATA to Crete Contract. It is created order but not updating the Characteristic values. I had done the lilnking for item - po item no with ref structure field posed. and set the flag X in ITEMX t

  • How Can I add a color profile to OS X 10.8.4?

    How Can I add a color profile to OS X 10.8.4? I've tried to locate the color profile folder but it's not availble.

  • HP z6/8 Adjustable Rail Rack Kit with HP Pro 4300

    I have purchased an HP z6/8 Adjustable Rail Rack Flush Mount Kit to allow my customer to install an HP Pro 4300 SFF PC in to their racking.  According the HP's website, the Rack Kit is compatible with this model of PC (http://h10010.www1.hp.com/wwpc/

  • JTabbedPane and makeTextPanel

    Hi. I have a problem. Investigating SUN samples for JTabbedPane I have encountered a method makeTextPanel. What class does it belong to? I just can not use it in my application, because it can not be resolved. Thank You...

  • Recording to another disk?

    I'm moving from ProTools Free (OS 9) to GarageBand, and have a question. What is the correct proceedure to get garageband to use another disk or partition to store audio files? At present I'm doing a Save-As, and saving the song file to another disk,