적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
이 문서에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 애플리케이션 역할을 만드는 방법을 설명합니다. 애플리케이션 역할은 특정 애플리케이션을 제외한 데이터베이스에 대한 사용자 액세스를 제한합니다. 애플리케이션 역할에는 사용자가 없으므로 애플리케이션 역할을 선택할 때 역할 멤버 목록이 표시되지 않습니다.
중요
애플리케이션 역할 암호가 설정된 경우 암호 복잡성이 검사됩니다. 애플리케이션 역할을 호출하는 애플리케이션은 해당 암호를 저장해야 합니다. 애플리케이션 역할 암호는 항상 암호화된 상태로 저장되어야 합니다.
배경
SQL Server 2012(11.x)부터 SQL Server 및 Azure SQL DB는 32비트 임의 및 고유한 솔트와 결합된 SHA-512 해시를 사용했습니다. 이 방법을 사용하면 공격자가 암호를 추론할 수 없도록 통계적으로 사용할 수 없습니다.
SQL Server 2025(17.x)에는 반복된 해시 알고리즘인 RFC2898이 도입되었으며, 이는 암호 기반 키 파생 함수(PBKDF)라고도 합니다. 이 알고리즘은 여전히 SHA-512를 사용하지만 암호를 여러 번 해시(100,000회 반복)하여 무차별 암호 대입 공격 속도가 크게 느려집니다. 이 변경은 진화하는 보안 위협에 대응하여 암호 보호를 강화하고 고객이 NIST SP 800-63b 지침을 준수하는 데 도움이 됩니다. 이 보안 향상 기능은 SQL 인증 로그인에 대한 로그인 시간을 약간 늘릴 수 있는 더 강력한 해시 알고리즘을 사용합니다. 일반적으로 연결 풀링이 있는 환경에서는 영향이 낮지만 풀링이 없는 시나리오 또는 로그인 대기 시간을 면밀히 모니터링하는 시나리오에서 더 두드러질 수 있습니다.
SQL Server Management Studio 사용
개체 탐색기에서 애플리케이션 역할을 만들려는 데이터베이스를 펼칩니다.
보안 폴더를 확장합니다.
역할 폴더를 확장합니다.
애플리케이션 역할 폴더를 마우스 오른쪽 단추로 클릭하고 새 애플리케이션 역할...을 선택합니다...
애플리케이션 역할 - 새로 만들기 대화 상자의 일반 페이지에서 역할 이름 상자에 새 애플리케이션 역할의 새 이름을 입력합니다.
기본 스키마 상자에서 개체 이름을 입력하여 이 역할을 만든 개체를 소유할 스키마를 지정합니다. 또는 줄임표 (...) 를 선택하여 스키마 찾기 대화 상자를 엽니다.
암호 상자에 새 역할의 암호를 입력합니다. 암호 확인 상자에 암호를 다시 입력합니다.
이 역할이 소유한 스키마 아래에서 이 역할이 소유할 스키마를 선택하거나 봅니다. 스키마는 하나의 스키마 또는 역할만 소유할 수 있습니다.
확인을 선택합니다.
추가 옵션
또한 애플리케이션 역할 – 새로 만들기 대화 상자는 두 개의 추가 페이지인 보안 개체 및 확장 속성에서 옵션을 제공합니다.
보안 개체 페이지에는 가능한 모든 보안 개체와 로그인에 부여할 수 있는 해당 보안 개체에 대한 권한이 나열됩니다.
확장 속성 페이지에서 데이터베이스 사용자에게 사용자 지정 속성을 추가할 수 있습니다.
transact-SQL 사용
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 선택합니다.
다음 예시를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 코드는 암호가 있는
weekly_receipts애플리케이션 역할을 만들고,Sales를 기본 스키마로 지정합니다. 강력한 암호로 대체<password>합니다.-- CREATE APPLICATION ROLE weekly_receipts WITH PASSWORD = '<password>' , DEFAULT_SCHEMA = Sales; GO
사용 권한
데이터베이스에 대한 ALTER ANY APPLICATION ROLE 권한이 필요합니다.