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에는 역할과 사용자가 함께 포함되어 있으므로 사용자를 필터링하는 것을 잊지 않아야합니다. 쉬운 참조를 위해 현재 표시된 답변에 대해 최종 쿼리를 업데이트하고 있습니다.
—
Moiz Tankiwala