sp_adduser(Transact-SQL)
적용 대상: SQL Server
현재 데이터베이스에 새 사용자를 추가합니다.
Important
SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 CREATE USER를 사용합니다.
구문
sp_adduser
[ @loginame = ] N'loginame'
[ , [ @name_in_db = ] N'name_in_db' ]
[ , [ @grpname = ] N'grpname' ]
[ ; ]
인수
[ @loginame = ] N'loginame'
SQL Server 로그인 또는 Windows 계정의 이름입니다. @loginame 기본값이 없는 sysname입니다. @loginame 기존 SQL Server 로그인 또는 Windows 계정이어야 합니다.
[ @name_in_db = ] N'name_in_db'
새 데이터베이스 사용자의 이름입니다. @name_in_db sysname이며 기본값은 .입니다NULL
. @name_in_db 지정되지 않은 경우 새 데이터베이스 사용자의 이름은 기본적으로 @loginame. @name_in_db 지정하면 새 사용자에게 서버 수준 로그인 이름과 다른 데이터베이스의 이름이 지정됩니다.
[ @grpname = ] N'grpname'
새 사용자가 멤버가 되는 데이터베이스 역할입니다. @grpname sysname이며 기본값은 .입니다NULL
. @grpname 현재 데이터베이스에서 유효한 데이터베이스 역할이어야 합니다.
반환 코드 값
0
(성공) 또는 1
(실패).
설명
sp_adduser
또한 사용자의 이름인 스키마를 만듭니다.
사용자가 추가된 후 , DENY
및 REVOKE
문을 사용하여 GRANT
사용자가 수행하는 작업을 제어하는 권한을 정의합니다.
유효한 로그인 목록을 표시하는 데 사용합니다 sys.server_principals
.
유효한 역할 이름 목록을 표시하는 데 사용합니다 sp_helprole
. 역할을 지정하면 사용자가 해당 역할에 대해 정의된 사용 권한을 자동으로 갖게 됩니다. 역할이 지정되지 않은 경우 사용자는 기본 공용 역할에 부여된 권한을 얻습니다. 역할에 사용자를 추가하려면 @name_in_db 값을 제공해야 합니다. (@name_in_db @loginame 동일할 수 있습니다.)
사용자 게스트 는 모든 데이터베이스에 이미 있습니다. 사용자 게스트 를 추가하면 이전에 사용하지 않도록 설정된 경우 이 사용자를 사용할 수 있습니다. 기본적으로 사용자 게스트 는 새 데이터베이스에서 사용할 수 없습니다.
sp_adduser
는 사용자 정의 트랜잭션 내에서 실행할 수 없습니다.
게스트 사용자가 모든 데이터베이스 내에 이미 있으므로 게스트 사용자를 추가할 수 없습니다. 게스트 사용자를 사용하도록 설정하려면 다음과 같이 게스트 CONNECT 권한을 부여합니다.
GRANT CONNECT TO guest;
GO
사용 권한
데이터베이스에 대한 소유권이 필요합니다.
예제
A. 데이터베이스 사용자 추가
다음 예제에서는 기존 SQL Server 로그인Vidur
을 Recruiting
사용하여 현재 데이터베이스의 기존 역할에 데이터베이스 사용자를 Vidur
추가합니다.
EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting';
B. 동일한 로그인 ID를 가진 데이터베이스 사용자 추가
다음 예제에서는 SQL Server 로그인Arvind
에 대한 현재 데이터베이스에 사용자를 Arvind
추가합니다. 이 사용자는 기본 공용 역할에 속합니다.
EXEC sp_adduser 'Arvind';
C. 서버 수준 로그인과 다른 이름을 가진 데이터베이스 사용자 추가
다음 예제에서는 사용자 이름Bjorn
인 현재 데이터베이스에 SQL Server 로그인 BjornR
을 추가하고 데이터베이스 역할에 데이터베이스 사용자를 Bjorn
Production
추가합니다.
EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';