Почему отображение входа в систему на 'dbo'
В базе данных Design пользователь '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'
Почему запрос под логином 'fed' в базе данных Design выбирает 'dbo'
USE [Design]
SELECT USER AS user_name
1 ответ
Сначала прочтите это: СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ
Вы путаете логин с пользователем. Ваш первый запрос проверяет информацию LOGIN, а второй - USER. Несколько ЛОГИНОВ могут отображаться на одного пользователя, что упрощает управление, например, администраторы сопоставляются с пользователем-владельцем базы данных 'dbo'.
РЕДАКТИРОВАТЬ Просто чтобы уточнить, только потому, что вы назвали столбец как имя_пользователя p.name AS [user_name]
не значит, что это так. Вы связываетесь через sys.sql_logins, поэтому "основным", который вы извлекаете, является объект входа, который name
Свойство, очевидно, является логином, а не user
,