¿Qué es exactamente lo que quiere comprobar para iniciar sesión o usuario? se crea un inicio de sesión en el nivel del servidor y se crea un usuario en el nivel de la base de datos para que el inicio de sesión sea único en el servidor
también se crea un usuario contra un inicio de sesión, un usuario sin inicio de sesión es un usuario huérfano y no es útil ya que no puede realizar el inicio de sesión del servidor SQL sin un inicio de sesión
tal vez necesites esto
verificar el inicio de sesión
select 'X' from master.dbo.syslogins where loginname=<username>
la consulta anterior devuelve 'X' si el inicio de sesión existe, devuelva nulo
luego crea un inicio de sesión
CREATE LOGIN <username> with PASSWORD=<password>
esto crea un inicio de sesión en el servidor sql. pero solo acepta contraseñas seguras
cree un usuario en cada base de datos que desee para iniciar sesión como
CREATE USER <username> for login <username>
asignar derechos de ejecución al usuario
GRANT EXECUTE TO <username>
DEBE TENER permisos de SYSADMIN o decir 'sa' para abreviar
puede escribir un procedimiento sql para eso en una base de datos
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