적용 대상:SQL Server
Azure SQL 데이터베이스
Azure SQL Managed Instance
애플리케이션 역할의 이름, 암호 또는 기본 스키마를 변경합니다.
구문
ALTER APPLICATION ROLE application_role_name
WITH <set_item> [ , ...n ]
<set_item> ::=
NAME = new_application_role_name
| PASSWORD = 'password'
| DEFAULT_SCHEMA = schema_name
인수
application_role_name
수정할 애플리케이션 역할의 이름입니다.
NAME = new_application_role_name
애플리케이션 역할의 새 이름을 지정합니다. 이 이름은 데이터베이스의 다른 보안 주체를 참조하는 데 사용된 이름이 아니어야 합니다.
PASSWORD = '암호'
애플리케이션 역할의 암호를 지정합니다.
password
는 SQL Server 인스턴스를 실행하는 컴퓨터의 Windows 암호 정책 요구 사항을 충족해야 합니다. 항상 강력한 암호를 사용해야 합니다.
DEFAULT_SCHEMA = schema_name
서버에서 개체 이름을 확인할 때 첫 번째로 검색할 스키마를 지정합니다. schema_name 데이터베이스에 없는 스키마일 수 있습니다.
설명
데이터베이스에 새 애플리케이션 역할 이름이 이미 있는 경우 문이 실패합니다. 애플리케이션 역할의 이름, 암호 또는 기본 스키마가 변경되면 역할과 연결된 ID가 변경되지 않습니다.
중요
암호 만료 정책은 애플리케이션 역할 암호에 적용되지 않습니다. 따라서 강력한 암호를 선택할 때는 특히 주의해야 합니다. 애플리케이션 역할을 호출하는 애플리케이션은 해당 암호를 저장해야 합니다.
애플리케이션 역할은 카탈로그 뷰에 sys.database_principals
표시됩니다.
비고
스키마는 데이터베이스 사용자와 동일하지 않습니다. 시스템 카탈로그 뷰를 사용하여 데이터베이스 사용자와 스키마 간의 차이점을 식별합니다.
SQL Server 2012(11.x)부터 SQL Server 및 Azure SQL DB는 32비트 임의 및 고유한 솔트와 결합된 SHA-512 해시를 사용했습니다. 이 방법을 사용하면 공격자가 암호를 추론할 수 없도록 통계적으로 사용할 수 없습니다.
SQL Server 2025(17.x) 미리 보기에는 PBKDF( 암호 기반 키 파생 함수 )라고도 하는 반복된 해시 알고리즘 RFC2898 도입되었습니다. 이 알고리즘은 여전히 SHA-512를 사용하지만 암호를 여러 번 해시(100,000회 반복)하여 무차별 암호 대입 공격 속도가 크게 느려집니다. 이 변경은 진화하는 보안 위협에 대응하여 암호 보호를 강화하고 고객이 NIST SP 800-63b 지침을 준수하는 데 도움이 됩니다.
사용 권한
데이터베이스에 대한 ALTER ANY APPLICATION ROLE 권한이 필요합니다. 기본 스키마를 변경하려면 애플리케이션 역할에 대한 ALTER 권한도 필요합니다. 애플리케이션 역할은 자체 기본 스키마를 변경할 수 있지만 애플리케이션 역할의 이름이나 암호는 변경할 수 없습니다.
예제
A. 애플리케이션 역할의 이름 변경
다음 예에서는 애플리케이션 역할의 이름을 weekly_receipts
에서 receipts_ledger
로 변경합니다.
USE AdventureWorks2022;
CREATE APPLICATION ROLE weekly_receipts
WITH PASSWORD = '987Gbv8$76sPYY5m23' ,
DEFAULT_SCHEMA = Sales;
GO
ALTER APPLICATION ROLE weekly_receipts
WITH NAME = receipts_ledger;
GO
B. 애플리케이션 역할의 암호 변경
다음 예에서는 receipts_ledger
애플리케이션 역할의 암호를 변경합니다.
ALTER APPLICATION ROLE receipts_ledger
WITH PASSWORD = '897yUUbv867y$200nk2i';
GO
C. 이름, 암호 및 기본 스키마 변경
다음 예에서는 receipts_ledger
애플리케이션 역할의 이름, 암호 및 기본 스키마를 동시에 변경합니다.
ALTER APPLICATION ROLE receipts_ledger
WITH NAME = weekly_ledger,
PASSWORD = '897yUUbv77bsrEE00nk2i',
DEFAULT_SCHEMA = Production;
GO