o que você exatamente deseja verificar para logon ou usuário? um login é criado no nível do servidor e um usuário é criado no nível do banco de dados para que um login seja exclusivo no servidor
Além disso, um usuário é criado contra um logon, um usuário sem logon é um usuário órfão e não é útil, pois você não pode executar o logon do servidor sql sem um logon
talvez você precise disso
verifique o login
select 'X' from master.dbo.syslogins where loginname=<username>
a consulta acima retornará 'X' se o login existir, senão retornará nulo
então crie um login
CREATE LOGIN <username> with PASSWORD=<password>
isso cria um logon no servidor sql. mas aceita apenas senhas fortes
crie um usuário em cada banco de dados que você deseja fazer login como
CREATE USER <username> for login <username>
atribuir direitos de execução ao usuário
GRANT EXECUTE TO <username>
É necessário ter permissões SYSADMIN ou dizer 'sa' para abreviar
você pode escrever um procedimento sql para isso em um banco de dados
create proc createuser
(
@username varchar(50),
@password varchar(50)
)
as
begin
if not exists(select 'X' from master.dbo.syslogins where loginname=@username)
begin
if not exists(select 'X' from sysusers where name=@username)
begin
exec('CREATE LOGIN '+@username+' WITH PASSWORD='''+@password+'''')
exec('CREATE USER '+@username+' FOR LOGIN '+@username)
exec('GRANT EXECUTE TO '+@username)
end
end
end