sp_addlogin(Transact-SQL)

적용 대상:SQL Server

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

Important

이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 CREATE LOGIN을 사용합니다.

Important

가능하면 Windows 인증을 사용하세요.

Transact-SQL 구문 표기 규칙

구문

sp_addlogin
    [ @loginame = ] N'loginame'
    [ , [ @passwd = ] N'passwd' ]
    [ , [ @defdb = ] N'defdb' ]
    [ , [ @deflanguage = ] N'deflanguage' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]

인수

[ @loginame = ] N'loginame'

로그인의 이름입니다. @loginame 기본값이 없는 sysname입니다.

[ @passwd = ] N'passwd'

로그인 암호입니다. @passwd sysname이며 기본값은 .입니다NULL.

Important

빈 암호를 사용하지 마세요. 강력한 암호를 사용하세요.

[ @defdb = ] N'defdb'

로그인의 기본 데이터베이스(로그인 후 로그인이 처음 연결된 데이터베이스)입니다. @defdb sysname이며 기본값은 .입니다master.

[ @deflanguage = ] N'deflanguage'

로그인의 기본 언어입니다. @deflanguage sysname이며 기본값은 .입니다NULL. @deflanguage 지정하지 않으면 새 로그인의 기본 @deflanguage 서버의 현재 기본 언어로 설정됩니다.

[ @sid = ] sid

SID(보안 ID 번호)입니다. @sid 기본값NULL인 varbinary(16)입니다. @sidNULL경우 시스템은 새 로그인에 대한 SID를 생성합니다. varbinary 데이터 형식을 사용했음에도 불구하고, 이외의 NULL 값은 정확히 16바이트 길이여야 하며 아직 존재할 수 없습니다. 예를 들어 한 서버에서 다른 서버로 SQL Server 로그인을 스크립팅하거나 이동하고 로그인이 서로 다른 서버에 동일한 SID를 갖도록 할 때 @sid 지정하는 것이 유용합니다.

[ @encryptopt = ] 'encryptopt'

암호가 지우기 텍스트로 전달되는지 아니면 지우기 텍스트 암호의 해시로 전달되는지를 지정합니다. 암호화가 발생하지 않습니다. "encrypt"라는 단어는 이전 버전과의 호환성을 위해 이 토론에서 사용됩니다. 지우기 텍스트 암호가 전달되면 해시됩니다. 해시가 저장됩니다. @encryptopt 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 권한이 필요합니다.

예제

A. SQL Server 로그인 만들기

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

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

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

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

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

C. 다른 기본 언어를 사용하는 SQL Server 로그인 만들기

다음 예제에서는 암호709hLKH7chjfwv, 기본 데이터베이스 AdventureWorks2022및 기본 언어Bulgarian를 사용하여 사용자TzTodorov에 대한 SQL Server 로그인을 만듭니다.

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

D. 특정 SID가 있는 SQL Server 로그인 만들기

다음 예제에서는 암호B548bmM%f6, 기본 데이터베이스AdventureWorks2022, 기본 언어 us_english및 SID0x0123456789ABCDEF0123456789ABCDEF를 사용하여 사용자Michael에 대한 SQL Server 로그인을 만듭니다.

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