在 SQL Server 中,要检察当前实例中存在的所有效户(登录名),你可以查询 sys.server_principals 体系视图。
这个视图包罗了 SQL Server 实例中所有服务器级别的安全主体,包括登录名、服务器脚色和应用程序脚色。
以下是一个简朴的 SQL 查询,用于列出 SQL Server 实例中的所有登录名(用户):
USE master;
GO
SELECT name, type_desc
FROM sys.server_principals
WHERE type_desc IN ('SQL_LOGIN', 'WINDOWS_LOGIN', 'WINDOWS_GROUP', 'CERTIFICATE', 'ASYMMETRIC_KEY', 'EXTERNAL_LOGIN');
复制代码
这个查询会返回所有类型的登录名,包括 SQL 登录名、Windows 登录名、Windows 组、证书登录名、非对称密钥登录名和外部登录名。假如你只对 SQL 登录名和 Windows 登录名感兴趣,可以进一步过滤 type_desc 的值。
假如你只想看 SQL 登录名和 Windows 登录名,可以利用以下查询:
USE master;
GO
SELECT name, type_desc
FROM sys.server_principals
WHERE type_desc IN ('SQL_LOGIN', 'WINDOWS_LOGIN');
复制代码
这个查询将只返回 SQL 登录名和 Windows 登录名。
请注意,实行这些查询通常需要具有充足的权限。假如你没有充足的权限,可能无法看到所有的登录名。在这种情况下,你可能需要联系你的数据库管理员来获取所需的信息。
此外,sys.server_principals 视图中的 type_desc 列形貌了主体的类型。 例如,SQL_LOGIN 表示一个 SQL Server 登录名,而 WINDOWS_LOGIN 表示一个 Windows 登录名。
通过检察这个列,你可以了解每个主体的类型。
6. SQLSever中有root账号吗?
在 SQL Server 中,并没有一个名为 “root” 的默认账号。
在 Unix 或 Linux 体系中,“root” 是超级用户账号,具有对体系的完全控制权。
但在 Windows 和 SQL Server 的情况中,概念略有不同。 在 SQL Server 中,拥有最高权限的账号通常是 sa(体系管理员)账号。
这个账号在 SQL Server 安装过程中创建,并具有对 SQL Server 实例的完全控制权。
与 Unix/Linux 中的 “root” 类似,sa 账号应该谨慎利用,而且其暗码应该妥善保管,以防止未经授权的访问。
除了 sa 账号外,SQL Server 还支持 Windows 身份验证模式,其中 Windows 域或本地组的成员可以作为 SQL Server 的登录名。在这种情况下,具有适当 Windows 权限的用户或组可以拥有对 SQL Server 的访问权限。
假如你正在寻找具有高级权限的账号来管理 SQL Server,你应该思量利用 sa 账号或具有适当权限的 Windows 用户或组。但是,请务必注意安全和权限管理的最佳实践,以避免潜伏的安全风险。
7. 报错:无法对 用户 ‘hx’ 实行 查找,由于它不存在,或者您没有所需的权限。