sp_addapprole(Transact-SQL)
현재 데이터베이스에 응용 프로그램 역할을 추가합니다.
![]() |
---|
Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 대신 CREATE APPLICATION ROLE을 사용합니다. |
구문
sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'
인수
[ @rolename = ] 'role'
새 응용 프로그램 역할의 이름입니다. role은 sysname이며 기본값은 없습니다. role은 반드시 유효한 식별자여야 하며 현재 데이터베이스에 미리 존재할 수 없습니다.응용 프로그램 역할 이름은 문자, 기호 및 숫자를 비롯하여 1자에서 128자까지의 문자를 포함할 수 있습니다. 역할 이름은 백슬래시(\)를 포함하거나 NULL 또는 빈 문자열('')이 될 수 없습니다.
- [ @password = ] 'password'
응용 프로그램 역할을 활성화하는 데 필요한 암호입니다. password는 sysname이며 기본값은 없습니다. password는 NULL이 될 수 없습니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
이전 버전의 SQL Server 에서 사용자 및 역할은 스키마와 완전히 구분되지 않았습니다. SQL Server 2005 에서 스키마는 역할과 완전히 구분됩니다. 이 새 아키텍처는 CREATE APPLICATION ROLE의 동작에 반영되었습니다. 이 문은 sp_addapprole을 대체합니다. 자세한 내용은 사용자와 스키마 분리를 참조하십시오.
이전 버전의 SQL Server 와의 호환성을 유지하기 위해 sp_addapprole은 다음을 수행합니다.
- 응용 프로그램 역할과 이름이 같은 스키마가 아직 없으면 해당 스키마가 생성됩니다. 새 스키마는 응용 프로그램 역할이 소유하고 응용 프로그램 역할의 기본 스키마가 됩니다.
- 응용 프로그램 역할과 이름이 같은 스키마가 이미 있으면 프로시저가 실패합니다.
- 암호 복잡성은 sp_addapprole에서 검사하지 않고 CREATE APPLICATION ROLE에서 검사합니다.
password 매개 변수는 단방향 해시로 저장됩니다.
사용자 정의 트랜잭션 내에서는 sp_addapprole 저장 프로시저를 실행할 수 없습니다.
![]() |
---|
Microsoft ODBC encrypt 옵션은 SqlClient에서 지원하지 않습니다. 가능한 경우 런타임 시 사용자에게 응용 프로그램 역할 자격 증명을 입력하라는 메시지를 표시할 수도 있습니다. 자격 증명은 파일에 저장하지 않는 것이 좋습니다. 자격 증명을 유지해야 할 경우에는 CryptoAPI 함수를 사용하여 암호화합니다. |
사용 권한
데이터베이스에 대한 ALTER ANY APPLICATION ROLE 권한이 필요합니다. 새 역할과 이름 및 소유자가 같은 스키마가 아직 없으면 데이터베이스에 대한 CREATE SCHEMA 권한도 필요합니다.
예
다음 예에서는 암호가 x97898jLJfcooFUYLKm387gf3
인 새 응용 프로그램 역할 SalesApp
를 현재 데이터베이스에 추가합니다.
EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO
참고 항목
참조
CREATE APPLICATION ROLE(Transact-SQL)