在数据库设计中,用户“喂”'与登录' 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'
为什么登录时的请求被输入'在设计数据库中选择' dbo'
USE [Design]
SELECT USER AS user_name
答案 0 :(得分:2)
首先阅读:CREATE USER
您将LOGIN与USER混淆。您的第一个查询是检查LOGIN信息,而第二个查询是查看USER。多个LOGIN可以映射到单个USER,这使得事情更容易管理,例如管理员全部映射到数据库所有者用户'dbo'。
修改强>
只是为了澄清,只是因为你将列命名为user_name p.name AS [user_name]
并不意味着它。您通过sys.sql_logins进行链接,因此您要检索的“主体”是登录对象,name
属性显然是登录名,而不是user
。