我试图通过指定Integrated Security=No
然后指定用户和密码的连接字符串以代码形式确定在连接到 SQL Server 时使用了什么 SQL Server 登录。
请注意,我不是指我指定的用户(我当然知道),而是用户映射到的登录名。我刚刚在阅读有关 SQL Server 中的登录名与用户的信息,有一点很重要,那就是您总是,总是,总是需要登录才能连接,然后每个数据库都有一个用户需要登录才能访问。所以我在 SSMS 中查找映射到我总是在我关心的数据库上指定的用户的登录名,但我看不到这样的登录名。
仅供参考,我问的原因是我需要为此数据库许可一个新的旧应用程序,并且该应用程序被编码为使用 SQL Server 身份验证。我正在尝试确定是否只需要必要数据库上的用户,或者是否需要创建登录名。但现在我对一般问题本身感到好奇。
编辑 - syslogins 的快速查询仅显示 2 个登录。因此,我认为 SQLS 维护微不足道的“每个用户 1 个”登录但 SSMS 隐藏它们的理论似乎并非如此
编辑 - 查询 syslogins 或 sys.server_principals 似乎具有误导性。在我有 2 个不同的工作 SQLS(不是 Win)登录名的数据库上,我分别登录并从 sys.server_principals 中选择 *。两个不同的答案:每次我得到 sa 和我登录的登录名。我不会看到“其他”登录,尽管它显然在那里。我猜这可能与模式有关,我对此也知之甚少。无论如何,我猜测一般来说,所有用户实际上都存在登录名,尽管当我以任何一个登录名连接到 SSMS 时,我不会看到所有这些登录名。这听起来对吗?
解决了(有点) 在我有 sa 的数据库上玩耍,很明显,如果你是 sa,SSMS 只会向你显示所有登录信息,或者可能有特定的权限。否则,您的登录视图将受到限制。因此,关于为什么我没有看到预期的登录信息,这并不神秘。显然 SSMS 隐藏了它们。我说“有点”和“显然”是因为我从来没有遇到过任何记录这一点的东西。这只是一个观察。
感谢大家的帮助。