sp_addlogin(Transact-SQL)
적용 대상: SQL Server
사용자가 SQL Server 인증을 사용하여 SQL Server 인스턴스에 연결할 수 있는 새 SQL Server 로그인을 만듭니다.
Important
SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 CREATE LOGIN을 사용합니다.
Important
가능하면 Windows 인증을 사용하세요.
구문
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)입니다. @sid NULL
경우 시스템은 새 로그인에 대한 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