web-dev-qa-db-fra.com

Comment découvrir le (s) compte (s) sous lequel le serveur SQL est en cours d'exécution?

Je viens de créer un proxy et je dois accorder l'accès au proxy au compte qui exécute l'agent SQL Server. Ce sera probablement un compte de domaine.

Comment puis-je le trouver en utilisant T-SQL?

6
Marcello Miorelli

Dans SQL Server 2005 et SQL Server 2008, il n'y avait aucune manière documentée. So Commande non documentée xp_regread a été utilisé pour obtenir le résultat

DECLARE @sn NVARCHAR(128);

EXEC master.dbo.xp_regread
    'HKEY_LOCAL_MACHINE',
    'SYSTEM\CurrentControlSet\services\SQLSERVERAGENT',
    'ObjectName', 
    @sn OUTPUT;

SELECT @sn;

Depuis SQL Server 2008R2 SP1, nous avons une façon documentée d'accéder à cette information: sys.dm_server_servicesici

Vous pouvez utiliser ci-dessous la requête pour trouver la même chose:

SELECT  DSS.servicename,
        DSS.startup_type_desc,
        DSS.status_desc,
        DSS.last_startup_time,
        DSS.service_account,
        DSS.is_clustered,
        DSS.cluster_nodename,
        DSS.filename,
        DSS.startup_type,
        DSS.status,
        DSS.process_id
FROM    sys.dm_server_services AS DSS;
9
KASQLDBA