理想情况下,我想传递一个 SQL Server 实例名称(例如,.\SQLEXPRESS
)并获取运行特定实例的帐户的名称(或 SID)。像这样的东西:
var serviceAccount = SomeClass.GetServiceAccount(".\SQLEXPRESS");
也许此信息存储在系统注册表或其他知名位置的某个位置?有任何想法吗?
理想情况下,我想传递一个 SQL Server 实例名称(例如,.\SQLEXPRESS
)并获取运行特定实例的帐户的名称(或 SID)。像这样的东西:
var serviceAccount = SomeClass.GetServiceAccount(".\SQLEXPRESS");
也许此信息存储在系统注册表或其他知名位置的某个位置?有任何想法吗?
试试这个:“查询以查找服务帐户详细信息”
从 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;