서버 수준 역할
SQL Server 에서는 서버에 대한 사용 권한을 쉽게 관리할 수 있도록 서버 수준 역할을 제공합니다. 서버 역할은 다른 보안 주체를 그룹화하는 보안 주체입니다. 서버 수준 역할은 서버 측 사용 권한 범위에 속합니다. 역할 은 Windows 운영 체제의 그룹 과 같습니다.
고정 서버 역할은 편리성 및 이전 버전과의 호환성을 위해 제공됩니다. 가능하면 보다 구체적인 사용 권한을 할당하세요.
SQL Server 에서 제공하는 고정 서버 역할은 9개입니다. 고정 서버 역할에 부여된 사용 권한은 변경할 수 없습니다. SQL Server 2012부터 사용자 정의 서버 역할을 만들고 사용자 정의 서버 역할에 서버 수준 권한을 추가할 수 있습니다.
서버 수준 보안 주체(SQL Server 로그인, Windows 계정 및 Windows 그룹)를 서버 수준 역할에 추가할 수 있습니다. 고정 서버 역할의 각 멤버는 같은 역할에 다른 로그인을 추가할 수 있습니다. 사용자 정의 서버 역할의 멤버는 이 역할에 다른 서버 보안 주체를 추가할 수 없습니다.
고정 서버 수준 역할
다음 표에서는 고정 서버 수준 역할과 해당 기능을 보여 줍니다.
고정 서버 수준 역할 | Description |
---|---|
sysadmin | sysadmin 고정 서버 역할의 멤버는 서버에서 모든 작업을 수행할 수 있습니다. |
serveradmin | serveradmin 고정 서버 역할의 멤버는 서버 차원의 구성 옵션을 변경하고 서버를 종료할 수 있습니다. |
securityadmin | securityadmin 고정 서버 역할의 멤버는 로그인 및 해당 속성을 관리합니다. 이러한 멤버는 서버 수준의 사용 권한을 부여(GRANT), 거부(DENY) 및 취소(REVOKE)할 수 있습니다. 데이터베이스에 대한 액세스 권한이 있는 경우 데이터베이스 수준의 사용 권한을 부여(GRANT), 거부(DENY) 및 취소(REVOKE)할 수도 있습니다. 또한 이 역할의 멤버는 SQL Server 의 로그인 암호를 다시 설정할 수 있습니다. ** 보안 참고 ** 데이터베이스 엔진에 대한 액세스 권한을 부여하고 사용자 권한을 구성하는 기능을 사용하면 보안 관리자가 대부분의 서버 권한을 할당할 수 있습니다. 역할은 securityadmin 역할과 동등한 sysadmin 것으로 처리되어야 합니다. |
processadmin | processadmin 고정 서버 역할의 멤버는 SQL Server의 인스턴스에서 실행 중인 프로세스를 종료할 수 있습니다. |
setupadmin | setupadmin 고정 서버 역할의 멤버는 Transact-SQL 문을 사용하여 연결된 서버를 추가하고 제거할 수 있습니다. (Management Studio를 사용할 때 sysadmin 멤버 자격이 필요합니다.) |
bulkadmin | bulkadmin 고정 서버 역할의 멤버는 BULK INSERT 문을 실행할 수 있습니다. |
diskadmin | diskadmin 고성 서버 역할은 디스크 파일을 관리하는 데 사용됩니다. |
dbcreator | dbcreator 고정 서버 역할의 멤버는 데이터베이스를 생성, 변경, 삭제 및 복원할 수 있습니다. |
public | 모든 SQL Server 로그인은 PUBLIC 서버 역할에 속합니다. 서버 보안 주체에게 보안 개체에 대한 특정 사용 권한이 부여되지 않았거나 거부된 경우 사용자는 해당 개체에 대해 public으로 부여된 사용 권한을 상속 받습니다. 모든 사용자가 개체를 사용할 수 있도록 하려는 경우에만 개체에 public 권한을 할당해야 합니다. public의 멤버 자격은 변경할 수 없습니다. 참고: public은 다른 역할과는 구현된 방식이 다르지만 public에서 사용 권한을 부여, 거부 또는 취소할 수 있습니다. |
고정 서버 역할에 대한 사용 권한
각 고정 서버 역할에는 관련된 특정 사용 권한이 있습니다. 서버 역할에 할당된 사용 권한의 차트는 데이터베이스 엔진 고정 서버 및 고정 데이터베이스 역할(영문)을 참조하세요.
중요
CONTROL SERVER
권한은 sysadmin
고정 서버 역할과 유사하지만 동일하지는 않습니다. 권한이 역할 멤버 자격을 의미하지 않으며 역할 멤버 자격이 있다고 해서 사용 권한이 부여되는 것도 아닙니다. (예: CONTROL SERVER
고정 서버 역할의 sysadmin
멤버 자격을 의미하지는 않습니다.) 그러나 역할과 동등한 권한 간에 가장할 수 있는 경우도 있습니다. 대부분의 DBCC
명령 및 많은 시스템 절차를 수행하려면 sysadmin
고정 서버 역할의 멤버 자격이 필요합니다. 멤버 자격이 필요한 sysadmin
171개의 시스템 저장 프로시저 목록은 Andreas Wolter CONTROL SERVER와 sysadmin/sa의 다음 블로그 게시물을 참조하세요. 권한, 시스템 프로시저, DBCC, 자동 스키마 만들기 및 권한 에스컬레이션 - 주의 사항.
서버 수준 사용 권한
사용자 정의 서버 역할에는 서버 수준 사용 권한만 추가할 수 있습니다. 서버 수준 사용 권한을 나열하려면 다음 문을 실행하세요. 서버 수준 사용 권한은 다음과 같습니다.
SELECT * FROM sys.fn_builtin_permissions('SERVER') ORDER BY permission_name;
권한에 대한 자세한 내용은 권한(데이터베이스 엔진) 및 sys.fn_builtin_permissions(Transact-SQL)을 참조하세요.
서버 수준 역할 작업
다음 표에서는 서버 수준 역할을 통해 사용할 수 있는 명령, 뷰 및 함수를 보여 줍니다.
기능 | Type | Description |
---|---|---|
sp_helpsrvrole(Transact-SQL) | 메타데이터 | 서버 수준 역할의 목록을 반환합니다. |
sp_helpsrvrolemember(Transact-SQL) | 메타데이터 | 서버 수준 역할의 멤버에 대한 정보를 반환합니다. |
sp_srvrolepermission(Transact-SQL) | 메타데이터 | 서버 수준 역할의 사용 권한을 표시합니다. |
IS_SRVROLEMEMBER(Transact-SQL) | 메타데이터 | SQL Server 로그인이 지정된 서버 수준 역할의 멤버인지 여부를 나타냅니다. |
sys.server_role_members(Transact-SQL) | 메타데이터 | 각 서버 수준 역할의 각 멤버에 대해 행을 반환합니다. |
sp_addsrvrolemember(Transact-SQL) | 명령 | 서버 수준 역할의 멤버로서 로그인을 추가합니다. 사용되지 않습니다. 대신 ALTER SERVER ROLE 을 사용하세요. |
sp_dropsrvrolemember(Transact-SQL) | 명령 | 서버 수준 역할에서 SQL Server 로그인이나 Windows 사용자 또는 그룹을 제거합니다. 사용되지 않습니다. 대신 ALTER SERVER ROLE 을 사용하세요. |
CREATE SERVER ROLE(Transact-SQL) | 명령 | 사용자 정의 서버 역할을 만듭니다. |
ALTER SERVER ROLE(Transact-SQL) | 명령 | 서버 역할의 멤버 자격을 변경하거나 사용자 정의 서버 역할의 이름을 변경합니다. |
DROP SERVER ROLE(Transact-SQL) | 명령 | 사용자 정의 서버 역할을 제거합니다. |
IS_SRVROLEMEMBER(Transact-SQL) | 함수 | 서버 역할의 멤버 자격을 결정합니다. |
참고 항목
데이터베이스 수준 역할
보안 카탈로그 뷰(Transact-SQL)
보안 함수(Transact-SQL)
SQL Server 보안 설정
GRANT 서버 보안 주체 사용 권한(Transact-SQL)
REVOKE 서버 보안 주체 사용 권한(Transact-SQL)
DENY 서버 보안 주체 사용 권한(Transact-SQL)
서버 역할 만들기