Я працюю з 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 містить ролі та користувачів разом, тому не слід забувати фільтрувати користувачів. Я поновлюю остаточний запит проти позначеної на даний момент відповіді для легкої довідки.
—
Моїз Танківала