1

在数据库设计中,'fed' 的用户与登录 'fed' 相比。

USE [Design]
SELECT l.name AS login_name, p.name AS [user_name]
FROM sys.sql_logins l JOIN sys.database_principals p ON l.SID = p.SID
WHERE l.name = 'fed'

在此处输入图像描述

为什么在 Design 数据库中登录“fed”下的请求选择“dbo”

USE [Design]
SELECT USER AS user_name

在此处输入图像描述

4

1 回答 1

2

首先阅读:创建用户

您将 LOGIN 与 USER 混淆了。您的第一个查询是检查 LOGIN 信息,而第二个查询是查看 USER。多个 LOGIN 可以映射到单个 USER,这使得事情更易于管理,例如管理员都映射到数据库所有者用户“dbo”。

编辑 只是为了澄清,仅仅因为您将列命名为 user_namep.name AS [user_name]并不意味着它是。您通过 sys.sql_logins 进行链接,因此您检索的“主体”是登录对象,其name属性显然是登录名,而不是user.

于 2012-09-29T21:04:46.853 回答