co dokładnie chcesz sprawdzić dla loginu lub użytkownika? login jest tworzony na poziomie serwera, a użytkownik jest tworzony na poziomie bazy danych, więc login jest unikalny na serwerze
również tworzony jest użytkownik na podstawie loginu, użytkownik bez loginu jest użytkownikiem osieroconym i nie jest przydatny, ponieważ nie można przeprowadzić logowania do serwera sql bez logowania
może tego potrzebujesz
sprawdź logowanie
select 'X' from master.dbo.syslogins where loginname=<username>
powyższe zapytanie zwraca „X”, jeśli login istnieje, w przeciwnym razie zwraca wartość null
następnie utwórz login
CREATE LOGIN <username> with PASSWORD=<password>
tworzy to login na serwerze sql, ale akceptuje tylko silne hasła
utwórz użytkownika w każdej bazie danych, do której chcesz się zalogować
CREATE USER <username> for login <username>
przypisać użytkownikowi prawa wykonywania
GRANT EXECUTE TO <username>
MUSISZ MIEĆ uprawnienia SYSADMIN lub w skrócie powiedzieć „sa”
możesz napisać dla tego procedurę sql w bazie danych
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