본문 바로가기
SQL SERVER(MSSQL)/권한

SQL Server 데이터베이스 수준 역할 (보안 - 로그인)

by 예비건물주 2022. 2. 13.

데이터베이스 수준 역할로는 미리 정의된 것과 사용자가 만들 수 있는 두 가지 유형이 있다.

  1. 고정 데이터베이스 역할: 미리 정의된 것
  2. 사용자 정의 데이터베이스 역할: 사용자가 정의

 

고정 데이터베이스 역할 (Fixed-database roles)

  • 데이터베이스 수준에서 정의 (각 데이터베이스에 존재)
  • db_owner 데이터베이스 역할의 멤버가 고정 데이터베이스 역할 멤버 자격을 관리

사용자 정의 데이터베이스 역할 (User Defined Server Roles) / 자세한 내용 나중에 추가 예정

  • 사용자가 정의하는 역할

 

그 중에서도 SSMS 에서 로그인 속성을 보면 평소에 헷갈렸던 2가지가 있었다.

그것이 바로 서버 역할, 사용자 매핑 탭이다!

SSMS에서 보안 - 로그인에서 볼 수 있는 서버 역할, 사용자 매핑 이미지

 

그 2가지를 아래 표로 정리하였다.

 

서버 역할

서버 역할 이미지

bulkadmin BULK INSERT를 실행할 수 있다

SQL Server on Linux에서는 bulkadmin 역할 또는 ADMINISTER BULK OPERATIONS 권한이 지원되지 않습니다. SQL Server on Linux의 경우 sysadmin 만 대량 삽입을 수행할 수 있습니다.
dbcreator 데이터베이스를 생성, 변경, 삭제, 복원할 수 있다
diskadmin 디스크 파일을 관리할 수 있다
processadmin SQL Sever 인스턴스에서 실행 중인 프로세스를 종료 시킬 수 있다
public 모든 SQL Server 로그인은 public 서버 역할에 속함
서버 보안 주체에게 보안 개체에 대한 특정 사용 권한이 부여되지 않았거나 거부된 경우 사용자는 해당 개체에 대해 public으로 부여된 사용 권한을 상속
모든 사용자가 개체를 사용할 수 있도록 하려는 경우에만 개체에 public 권한을 할당해야 함
public의 멤버 자격은 변경할 수 없다
securityadmin 로그인을 관리, SQL Server 로그인 암호를 재설정, 서버 수준 권한 또는 DB 수준 권한 부여, 거부, 취소 할 수 있음

서버 및 DB 수준 사용 권한을 GRANT, DENY, REVOKE 할 수 있다
SQL Server 의 로그인 암호를 다시 설정할 수 있음
serveradmin 서버 차원의 구성 옵션을을 변경하고 서버를 종료 할 수 있다
setupadmin Transact-SQL 문을 사용하여 연결된 서버를 추가/제거할 수 있다.
(Management Studio를 사용할 때 sysadmin 멤버 자격이 필요)
sysadmin 모든 서버 활동을 수행 가능

 

사용자 매핑

사용자 매핑 이미지

db_accessadmin 엔진에 접속할 윈도우 인증과 SQL Server 로그인을 수정할 권한
db_backupoperator 데이터베이스 백업 권한
db_datareader 테이블의 모든 데이터를 볼 수 있는 권한
db_datawriter 테이블에 데이터 수정 권한
db_ddladmin 데이터베이스의 모든 DDL 관련 명령을 실행할 권한
Table, Stored Procedure, View 등을 만들 수 있음
db_denydatareader 사용자 테이블 및 뷰의 데이터를 읽을 수 없다
db_denydatawriter 사용자 테이블 데이터를 추가, 수정, 삭제 할 수 없다
db_owner 데이터베이스의 모든 설정과 관리 작업을 수행할 수 있는 권한
DB 개체 생성, 삭제, 백업 생성, 보안 구성, 유지 관리 작업(consistency check, 인덱스, 통계 등)을 수행 할 수 있다
db_secutiryadmin 멤버 권한을 제한할 수 있는 권한
public 디폴트로 부여되는 최소한의 권한