다음을 통해 공유


sp_adduser(Transact-SQL)

현재 데이터베이스에 새 사용자를 추가합니다.

중요 정보중요

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

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

구문

sp_adduser [ @loginame = ] 'login' 
        [ , [ @name_in_db = ] 'user' ] 
        [ , [ @grpname = ] 'role' ] 

인수

  • [ @loginame = ] 'login'
    SQL Server 로그인 또는 Windows 로그인 이름입니다. login은 sysname이며 기본값은 없습니다. login은 기존 SQL Server 로그인 또는 Windows 로그인이어야 합니다.

  • [ @name_in_db = ] 'user'
    새 데이터베이스 사용자의 이름입니다. user는 sysname이며 기본값은 NULL입니다. user를 지정하지 않으면 기본적으로 login 이름이 새 데이터베이스 사용자의 이름이 됩니다. user를 지정하여 데이터베이스에서 서버 수준 로그인 이름과는 다른 새 사용자 이름을 부여할 수 있습니다.

  • [ @grpname = ] 'role'
    새 사용자가 멤버로 추가되는 데이터베이스 역할입니다. role은 sysname이며 기본값은 NULL입니다. role은 현재 데이터베이스에서 유효한 데이터베이스 역할이어야 합니다.

반환 코드 값

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

주의

sp_adduser는 사용자의 이름과 같은 스키마도 생성합니다.

사용자를 추가한 다음 GRANT, DENY 및 REVOKE 문을 통해 사용자의 작업을 제어하는 사용 권한을 정의합니다.

유효한 로그인 이름 목록을 표시하려면 sys.server_principals를 사용합니다.

유효한 역할 이름 목록을 표시하려면 sp_helprole을 사용합니다. 역할을 지정하면 사용자가 해당 역할에 대해 정의된 사용 권한을 자동으로 갖게 됩니다. 역할을 지정하지 않으면 기본 public 역할에 부여된 사용 권한을 갖게 됩니다. 역할에 사용자를 추가하려면 user name 값을 제공해야 합니다. username은 login_id와 동일하게 지정할 수 있습니다.

guest 사용자는 이미 모든 데이터베이스에 있습니다. guest 사용자를 이전에 해제한 경우 추가하면 사용할 수 있도록 설정됩니다. 기본적으로 새 데이터베이스에서는 guest 사용자가 해제되어 있습니다.

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

guest 사용자는 이미 모든 데이터베이스에 있으므로 guest 사용자를 추가할 수 없습니다. guest 사용자를 설정하려면 다음과 같이 guest CONNECT 권한을 부여합니다.

GRANT CONNECT TO guest;
GO

사용 권한

데이터베이스에 대한 소유권이 필요합니다.

1. 데이터베이스 사용자 추가

다음 예에서는 Vidur라는 기존 SQL Server 로그인을 사용하여 Vidur 데이터베이스 사용자를 현재 데이터베이스의 기존 Recruiting 역할에 추가합니다.

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting'

2. 동일한 로그인 ID로 데이터베이스 사용자 추가

다음 예에서는 Arvind 사용자를 Arvind라는 SQL Server 로그인에 대한 현재 데이터베이스에 추가합니다. 이 사용자는 기본 public 역할에 속합니다.

EXEC sp_adduser 'Arvind'

3. 서버 수준 로그인과는 다른 이름으로 데이터베이스 사용자 추가

다음 예에서는 BjornR라는 SQL Server 로그인을 Bjorn이라는 사용자 이름의 현재 데이터베이스에 추가하고 Bjorn 데이터베이스 사용자를 Production 데이터베이스 역할에 추가합니다.

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production'