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にはロールとユーザーが一緒に含まれているため、ユーザーをフィルターすることを忘れないでください。簡単に参照できるように、現在マークされている回答に対して最終クエリを更新しています。
—
モイズタンキワラ17年