cosa vuoi verificare esattamente per l'accesso o l'utente? un accesso viene creato a livello di server e un utente viene creato a livello di database, quindi un accesso è univoco nel server
anche un utente viene creato con un accesso, un utente senza accesso è un utente orfano e non è utile poiché non è possibile eseguire l'accesso al server sql senza un accesso
forse hai bisogno di questo
controlla il login
select 'X' from master.dbo.syslogins where loginname=<username>
la query sopra restituisce 'X' se il login esiste altrimenti restituisce null
quindi crea un login
CREATE LOGIN <username> with PASSWORD=<password>
questo crea un login nel server sql. ma accetta solo password complesse
creare un utente in ogni database per il quale si desidera accedere come
CREATE USER <username> for login <username>
assegnare i diritti di esecuzione all'utente
GRANT EXECUTE TO <username>
DEVI AVERE le autorizzazioni SYSADMIN o dire 'sa' in breve
puoi scrivere una procedura sql per quella su un database
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