Как получить учетную запись службы SQL Server работает как с C #? - PullRequest
1 голос
/ 25 февраля 2011

В идеале я хотел бы передать имя экземпляра SQL Server (например, .\SQLEXPRESS) и получить имя (или SID) учетной записи, под которой работает данный экземпляр.Примерно так:

var serviceAccount = SomeClass.GetServiceAccount(".\SQLEXPRESS");

Может быть, эта информация хранится где-то в системном реестре или другом известном месте?Есть идеи?

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011
0 голосов
/ 10 октября 2017

Начиная с SQL Server 2008, мы можем получить информацию из запроса ниже:

SELECT value_data
FROM   sys.dm_server_registry
WHERE  value_name = 'ObjectName'
AND     registry_key = 'HKLM\SYSTEM\CurrentControlSet\Services\MSSQLSERVER'

Мы также можем использовать следующий подход:

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;   
...