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