如何找到对 SQL Server Express 具有系统管理员访问权限的 Windows 用户和组?
Posted
技术标签:
【中文标题】如何找到对 SQL Server Express 具有系统管理员访问权限的 Windows 用户和组?【英文标题】:How do I find Windows users and groups who have sysadmin access to SQL Server Express? 【发布时间】:2018-10-12 22:33:38 【问题描述】:是否可以针对 SQL Server Express 数据库运行查询以确定哪些 Windows 用户和组已被授予系统管理员权限?
我有一个应用程序安装程序,它正在 Windows 10 笔记本电脑上安装 SQL Server Express,然后通过使用 Windows 身份验证进行连接来创建数据库。
为了实现这一点,我们一直说登录用户必须是本地管理员。不幸的是,在最近一次 Windows 更新后,“管理员”用户消失了。
很遗憾,SQL Server Express 安装已禁用“sa”,因此我们无法使用它进行连接。那么问题来了,哪些登录名或组在数据库中具有 sysadmin 权限?
【问题讨论】:
【参考方案1】:您可以使用sys.server_principals
表,它包含所有用户的列表以及可能有用的有用信息。
select * from master.sys.server_principals
如果要根据用户的权限组列出用户,请使用sys.server_role_members
表。
select * from master.sys.server_role_members
加入他们以列出所有已被授予系统管理员权限的用户:
select * from master.sys.server_principals sp
JOIN master.sys.server_role_members sr ON sr.member_principal_id = sp.principal_id
WHERE
sr.role_principal_id = 3
【讨论】:
以上是关于如何找到对 SQL Server Express 具有系统管理员访问权限的 Windows 用户和组?的主要内容,如果未能解决你的问题,请参考以下文章
无法从使用 Express.js 和 SQL Server 创建的 api 获得任何响应
如何将所有数据库(快速)自 sql server 2008 express 传递到 sql server 2008 R2(无 express)
您如何使用 SQL Server CE 和 SQL Server 2008 Express?
如何将远程 SQL Server Express 数据库的部分副本复制到本地 SQL Server Express 数据库?