다음을 통해 공유


sp_addlogin(Transact-SQL)

사용자가 SQL Server 인증을 사용하여 SQL Server 인스턴스에 연결할 수 있도록 하는 새 SQL Server 로그인을 만듭니다.

중요 정보중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 CREATE LOGIN을 사용하십시오.

보안 정보보안 정보

가능하면 Windows 인증을 사용하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_addlogin [ @loginame = ] 'login' 
    [ , [ @passwd = ] 'password' ] 
    [ , [ @defdb = ] 'database' ] 
    [ , [ @deflanguage = ] 'language' ] 
    [ , [ @sid = ] sid ] 
    [ , [ @encryptopt = ] 'encryption_option' ] 
[;]

인수

  • [ @loginame = ] 'login'
    로그인 이름입니다. login은 sysname이며 기본값은 없습니다.

  • [ @passwd = ] 'password'
    로그인 암호입니다. password는 sysname이며 기본값은 NULL입니다.

    보안 정보보안 정보

    빈 암호를 사용하지 마십시오. 강력한 암호를 사용하십시오.

  • [ @defdb = ] 'database'
    로그인의 기본 데이터베이스(로그인한 다음 처음 연결되는 데이터베이스)입니다. database는 sysname이며 기본값은 master입니다.

  • [ @deflanguage = ] 'language'
    로그인의 기본 언어입니다. language는 sysname이며 기본값은 NULL입니다. language를 지정하지 않으면 새 로그인의 기본 language가 서버의 현재 기본 언어로 설정됩니다.

  • [ @sid = ] 'sid'
    SID(보안 ID)입니다. sid는 varbinary(16)이며 기본값은 NULL입니다. sid가 NULL일 경우, 시스템은 새 로그인에 대한 SID를 생성합니다. varbinary 데이터 형식을 사용한다 해도 NULL이 아닌 다른 값은 정확히 16바이트 길이가 되어야 하며 이미 존재하지 않아야 합니다. 예를 들어 서버 간에 SQL Server 로그인을 스크립팅 또는 이동할 때 해당 로그인이 다른 서버에서도 동일한 SID를 갖도록 하려는 경우 sid를 지정하면 유용합니다.

  • [ @encryptopt = ] 'encryption_option'
    암호를 일반 텍스트로 전달할지 아니면 일반 텍스트 암호의 해시로 전달할지 지정합니다. 암호화되지는 않습니다. 이 설명에서 "암호화"라는 단어는 이전 버전과의 호환성을 위해 사용합니다. 일반 텍스트 암호가 전달되면 전달된 암호는 해시됩니다. 해시된 암호는 저장됩니다. encryption_option은 varchar(20)이며 다음 값 중 하나일 수 있습니다.

    설명

    NULL

    암호를 일반 텍스트로 전달합니다. 기본값입니다.

    skip_encryption

    암호가 이미 해시되어 있습니다. 데이터베이스 엔진에서 다시 해시하지 않고 값을 저장합니다.

    skip_encryption_old

    제공된 암호가 이전 버전의 SQL Server에 의해 해시되었습니다. 데이터베이스 엔진에서 다시 해시하지 않고 값을 저장합니다. 이 옵션은 업그레이드 목적으로만 제공됩니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

SQL Server 로그인은 문자, 기호 및 숫자를 포함하여 1자에서 128자까지의 문자를 포함할 수 있습니다. 로그인은 백슬래시(\)를 포함할 수 없으며 sa, public 등의 예약된 로그인 이름이나 이미 존재하는 이름 또는 NULL이나 빈 문자열('')일 수 없습니다.

기본 데이터베이스의 이름이 제공되는 경우에는 USE 문을 실행하지 않고도 지정된 데이터베이스에 연결할 수 있습니다. 그러나 기본 데이터베이스 소유자가 sp_adduser, sp_addrolemember 또는 sp_addrole을 사용하여 데이터베이스 액세스 권한을 부여해야 사용자는 해당 데이터베이스를 사용할 수 있습니다.

SID는 서버에서 로그인을 고유하게 식별하는 GUID입니다.

서버의 기본 언어를 변경해도 기존 로그인의 기본 언어는 변경되지 않습니다. 서버의 기본 언어를 변경하려면 sp_configure를 사용합니다.

암호 해싱을 생략하는 skip_encryption은 로그인이 SQL Server에 추가되는 시점에 이미 암호가 해시된 경우 유용합니다. 암호가 이전 버전의 SQL Server에 의해 해시된 경우 skip_encryption_old를 사용하십시오.

사용자 정의 트랜잭션 내에서는 sp_addlogin을 실행할 수 없습니다.

다음 표에서는 sp_addlogin과 함께 사용하는 몇 가지 저장 프로시저를 보여 줍니다.

저장 프로시저

설명

sp_grantlogin

Windows 사용자 또는 그룹을 추가합니다.

sp_password

사용자의 암호를 변경합니다.

sp_defaultdb

사용자의 기본 데이터베이스를 변경합니다.

sp_defaultlanguage

사용자의 기본 언어를 변경합니다.

사용 권한

ALTER ANY LOGIN 권한이 필요합니다.

1. SQL Server 로그인 만들기

다음 예에서는 Victoria라는 사용자에 대한 SQL Server 로그인을 만듭니다. 암호는 B1r12-36이며 기본 데이터베이스는 지정하지 않습니다.

EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO

2. 기본 데이터베이스가 있는 SQL Server 로그인 만들기

다음 예에서는 Albert라는 사용자에 대한 SQL Server 로그인을 만듭니다. 암호는 B5432-3M6이며 기본 데이터베이스는 corporate입니다.

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO

3. 기본 언어가 다른 SQL Server 로그인 만들기

다음 예에서는 TzTodorov라는 사용자에 대한 SQL Server 로그인을 만듭니다. 암호는 709hLKH7chjfwv이고 기본 데이터베이스는 AdventureWorks2008R2이며 기본 언어는 Bulgarian입니다.

EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2008R2', N'български'

4. 특정 SID를 가진 SQL Server 로그인 만들기

다음 예에서는 Michael이라는 사용자에 대한 SQL Server 로그인을 만듭니다. 암호는 B548bmM%f6이고 기본 데이터베이스는 AdventureWorks2008R2이며 기본 언어는 us_english입니다. 그리고 SID는 0x0123456789ABCDEF0123456789ABCDEF입니다.

EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2008R2', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF