Checking if a SQL Server login already exists

前端 未结 10 2112
盖世英雄少女心
盖世英雄少女心 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:41

    Here's a way to do this in SQL Server 2005 and later without using the deprecated syslogins view:

    IF NOT EXISTS 
        (SELECT name  
         FROM master.sys.server_principals
         WHERE name = 'LoginName')
    BEGIN
        CREATE LOGIN [LoginName] WITH PASSWORD = N'password'
    END
    

    The server_principals view is used instead of sql_logins because the latter doesn't list Windows logins.

    If you need to check for the existence of a user in a particular database before creating them, then you can do this:

    USE your_db_name
    
    IF NOT EXISTS
        (SELECT name
         FROM sys.database_principals
         WHERE name = 'Bob')
    BEGIN
        CREATE USER [Bob] FOR LOGIN [Bob] 
    END
    

提交回复
热议问题