Chính xác bạn muốn kiểm tra đăng nhập hoặc người dùng là gì? đăng nhập được tạo ở cấp máy chủ và người dùng được tạo ở cấp cơ sở dữ liệu để đăng nhập là duy nhất trong máy chủ
người dùng cũng được tạo ra để đăng nhập, người dùng không đăng nhập là người dùng mồ côi và không hữu ích vì bạn không thể thực hiện đăng nhập máy chủ sql mà không cần đăng nhập
có lẽ bạn cần cái này
kiểm tra đăng nhập
select 'X' from master.dbo.syslogins where loginname=<username>
truy vấn trên trả về 'X' nếu đăng nhập tồn tại khác trả về null
sau đó tạo một đăng nhập
CREATE LOGIN <username> with PASSWORD=<password>
điều này tạo ra một đăng nhập trong máy chủ sql. Nhưng nó chỉ chấp nhận mật khẩu mạnh
tạo người dùng trong mỗi cơ sở dữ liệu bạn muốn đăng nhập như
CREATE USER <username> for login <username>
gán quyền thực thi cho người dùng
GRANT EXECUTE TO <username>
BẠN PHẢI CÓ quyền SYSADMIN hoặc nói ngắn gọn là 'sa'
bạn có thể viết một thủ tục sql cho điều đó trên cơ sở dữ liệu
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