如何查询 SQL 作业所有者的可能登录名?

Posted

技术标签:

【中文标题】如何查询 SQL 作业所有者的可能登录名?【英文标题】:How can I get a query of possible login names for SQL job owner? 【发布时间】:2021-05-19 15:15:44 【问题描述】:

我正在尝试获取工作所有者的所有可能登录名的列表。以下查询

SELECT * FROM sys.syslogins
WHERE hasaccess=1

让我接近我正在寻找的内容,但它返回了我在使用 SSMS 的“浏览对象”对话框中找不到的其他登录名(例如 ##MS_AgentSigningCertificate##BUILTIN\Administrators)。我在 sys.syslogins 表中找不到任何逻辑来区分这些记录。我查看了其他登录表,但没有比 sys.syslogins 更接近的了。

SQL Server 是 10.50 (2008R2) 版本,但我正在寻找一个可以为我提供此版本或更早版本结果的查询。

我错过了什么?

【问题讨论】:

仅供参考,你真的应该停止使用那些旧的兼容性视图,比如syslogins;它们是为旧的 SQL Server 2000 数据库设计的。切换到新的sys 对象。 sys.syslogins (Transact-SQL) 【参考方案1】:

@Larnu 为我指明了正确的方向。

解决我的问题的查询是:

SELECT * FROM sys.server_principals
WHERE [type] IN ('S', 'U')

【讨论】:

以上是关于如何查询 SQL 作业所有者的可能登录名?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2008自动备份出现 出现 执行维护计划. MaintenancePlan (错误)密码和登录名不匹被

SQL中如何新建一个服务器并登录

允许 Windows AD 组拥有 SQL 作业

SQL SERVER 建好了,如何创建用户以及赋予所有权限?

SQL Server - 如何将所有数据库的读取权限授予登录名?

sql 查询每天都有登录的人