Я работаю с SQL Server 2012. Я хочу проверить, существует ли пользователь, прежде чем добавить его в базу данных.
Вот что я проверил:
USE [MyDatabase]
GO
IF NOT EXISTS (SELECT name
FROM [sys].[server_principals]
WHERE name = N'IIS APPPOOL\MyWebApi AppPool')
Begin
CREATE USER [IIS APPPOOL\MyWebApi AppPool]
FOR LOGIN [IIS APPPOOL\MyWebApi AppPool] WITH DEFAULT_SCHEMA=[dbo]
end
ALTER ROLE [db_owner] ADD MEMBER [IIS APPPOOL\MyWebApi AppPool]
GO
Но этот код SELECT name FROM [sys].[server_principals]
не возвращается, если этот пользователь существует в MyDatabase
.
Как я могу проверить, существует ли пользователь в MyDatabase
?
1
Имейте в виду, что sys.database_principals содержит роли и пользователей вместе, поэтому нельзя забывать фильтровать пользователей. Я обновляю окончательный запрос по текущему помеченному ответу для удобства.
—
Мойз Танкивала