Estou trabalhando com o SQL Server 2012. Quero verificar se existe um usuário antes de adicioná-lo a um banco de dados.
Isto é o que eu testei:
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
Mas, esse código SELECT name FROM [sys].[server_principals]
não retornará se esse usuário existir MyDatabase
.
Como posso verificar se existe um usuário MyDatabase
?
1
Lembre-se de que os sys.database_principals contêm funções e usuários juntos, portanto, não se esqueça de filtrar os usuários. Estou atualizando a consulta final com relação à resposta atualmente marcada para facilitar a referência.
—
Moiz Tankiwala