2013-01-15 4 views
0

Je suis en train de configurer l'agent Job SQL Server à l'aide du script suivant:configuration agent de travail serveur sql

USE [msdb] 
GO 
CREATE USER [mydbuser] FOR LOGIN [mydbuser] 
GO 
EXEC sp_addrolemember N'db_datareader', N'mydbuser' 
GO 
EXEC sp_addrolemember N'SQLAgentOperatorRole', N'mydbuser' 
GO 
EXEC sp_addrolemember N'SQLAgentReaderRole', N'mydbuser' 
GO 
EXEC sp_addrolemember N'SQLAgentUserRole', N'mydbuser' 
go 
sp_configure 'show advanced options',1 
go 
reconfigure with override 
go 
     sp_configure 'xp_cmdshell',1 
go 
reconfigure with override 
go 
sp_configure 'show advanced options',0 
go 
reconfigure with override 


use master 
go 
GRANT EXECUTE on xp_cmdshell to db_job 
go 

use master 
go 
EXEC sp_xp_cmdshell_proxy_account 'mydomain\db_job', 'password-1' 
go 

CREATE CREDENTIAL [Job3] WITH IDENTITY = N'mydomain\mydomainuser', SECRET =    N'mydomain\mydomainuser' 
GO 

USE [msdb] 
GO 
EXEC msdb.dbo.sp_add_proxy @proxy_name=N'LW_JobRunner',@credential_name=N'Job', 
@enabled=1 
GO 
EXEC msdb.dbo.sp_grant_proxy_to_subsystem @proxy_name=N'LW_JobRunner', @subsystem_id=3 
GO 
EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'LW_JobRunner',   @login_name=N'mydbuser' 
GO 

/* Setting up job Category */ 

DECLARE @ReturnCode INT 
SELECT @ReturnCode = 0 

EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL',    @name=N'MyJob' 
go 

USE MASTER 
GO 

EXEC master.dbo.xp_sqlagent_proxy_account N'SET', 
    N'DEV',   -- agent_domain_name 
    N'Administrator', -- agent_username 
    N'password'  -- agent_password 

Mais la dernière étape sur l'exécution du sp xp_sqlagent_proxy_account, dit

Impossible de trouver le proccure stockée xp_sqlagent_proxy_account.

Je suis sûr que je l'exécuter sur le master db avec les lettres de créance sa ...

Et à cause de cela sur l'ajout d'un emploi je reçois une erreur comme celle

Impossible de trouver le serveur 'myIpAddress' dans sys.servers. Vérifiez que le nom du serveur correct a été spécifié. Si nécessaire, exécutez la procédure stockée sp_addlinkedserver pour ajouter le serveur à sys.servers

Comment résoudre ce problème?

Répondre

0

Cette erreur se produit généralement lorsque des utilisateurs non-sysadmin tentent d'exécuter xp_cmdshell. Vous indiquez cependant que vous êtes sûr que vous exécutez en master db avec ses informations d'identification.

Vous pourriez vouloir essayer ceci:

-- Enable non-system administrators to run the job and to execute xp_cmdshell. 
EXECUTE msdb..sp_set_sqlagent_properties @sysadmin_only = 0 
GO 

Cela permettra aux utilisateurs non-sa à accéder xp_cmdshell. Si cela fonctionne, cela signifie que le compte d'utilisateur sous lequel votre script s'exécute est un compte non-sa.

Espérons que cela aide.

Raj

+0

Je reçois l'erreur suivante @@ drapeau sysadmin_only n'est plus pris en charge par SQLAgent et maintenu ici que pour la rétrocompatibilité – user824910

+0

Vous avez raison. Puisque votre question ne parlait pas de la version SQL, j'ai fait une suggestion générique. Je viens de remarquer la balise SQL 2008. Pardon – Raj

Questions connexes