Checking if a SQL Server login already exists

前端 未结 10 2123
盖世英雄少女心
盖世英雄少女心 2020-12-12 12:27

I need to check if a specific login already exists on the SQL Server, and if it doesn\'t, then I need to add it.

I have found the following code to actually add the

10条回答
  •  醉话见心
    2020-12-12 12:46

    what are you exactly want check for login or user ? a login is created on server level and a user is created at database level so a login is unique in server

    also a user is created against a login, a user without login is an orphaned user and is not useful as u cant carry out sql server login without a login

    maybe u need this

    check for login

    select 'X' from master.dbo.syslogins where loginname=
    

    the above query return 'X' if login exists else return null

    then create a login

    CREATE LOGIN  with PASSWORD=
    

    this creates a login in sql server .but it accepts only strong passwords

    create a user in each database you want to for login as

    CREATE USER  for login 
    

    assign execute rights to user

     GRANT EXECUTE TO 
    

    YOU MUST HAVE SYSADMIN permissions or say 'sa' for short

    you can write a sql procedure for that on a 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
    

提交回复
热议问题