Summary: in this tutorial, you will learn how to use the SQL Server DROP LOGIN statement to delete a login from the database server.
Introduction to the SQL Server DROP LOGIN statement #
The DROP LOGIN statement allows you to delete a SQL Server login account. Here’s the syntax of the DROP LOGIN statement:
DROP LOGIN login_name;Code language: SQL (Structured Query Language) (sql)In this syntax, you specify the login name that you want to delete after the DROP LOGIN keywords.
Note that you cannot drop a login while it’s signed in. And if a login owns a securable, server-level object, or SQL Server Agent job, you also cannot drop that login.
If a login account is mapped to database users and you drop a login, these database users will become orphaned users.
SQL Server DROP LOGIN statement example #
We’ll use the BikeStores database in the following DROP LOGIN statement examples.
1) Simple DROP LOGIN statement example #
First, create a new login called jack with a password:
CREATE LOGIN jack
WITH PASSWORD = 'iOvT84xn.';Code language: SQL (Structured Query Language) (sql)Second, drop the login jack using the DROP LOGIN statement:
DROP LOGIN jack;Code language: SQL (Structured Query Language) (sql)The statement was completed successfully because the login jack has no dependency. Typically, you use this scenario when you create a login with the wrong intended name.
2) Using the DROP LOGIN statement to remove a login that maps to a database user #
First, create a new login called joe with a password:
CREATE LOGIN joe
WITH PASSWORD = 'NBgs23we$';Code language: SQL (Structured Query Language) (sql)Second, create a new user for the login joe:
CREATE USER joe
FOR LOGIN joe;Code language: SQL (Structured Query Language) (sql)Third, drop the login joe using the DROP LOGIN statement:
DROP LOGIN joe;Code language: SQL (Structured Query Language) (sql)The user joe becomes orphaned.
To get all orphaned users in the current database server, you use the following query:
SELECT
dp.type_desc,
dp.sid,
dp.name AS user_name
FROM sys.database_principals AS dp
LEFT JOIN sys.server_principals AS sp
ON dp.sid = sp.sid
WHERE sp.sid IS NULL
AND dp.authentication_type_desc = 'INSTANCE';Code language: SQL (Structured Query Language) (sql)Output:

3) Resolve an orphaned user #
To resolve an orphaned user, you can recreate a missing login with the SID of the database user. For example, the following statement creates a new login ocean with the SID of the user joe:
CREATE LOGIN ocean
WITH PASSWORD = 'bNHXUYT321#',
SID = 0xC48461C284AE024EB42149BFDBCD18A8;Code language: SQL (Structured Query Language) (sql)Now, the user joe can log in to the database server.
If you already have a login and want to map it with the orphaned user, you can use the ALTER USER statement. For example:
ALTER USER orphaned_user
WITH LOGIN = login_name;Code language: SQL (Structured Query Language) (sql)Summary #
- Use the
DROP LOGINstatement to delete a login account from the SQL Server. - The
DROP LOGINcannot delete a login account that is logged in or owns a securable, server-level object, or SQL Server Agent job. - Drop a login that maps to database users will make these database users orphaned.