SQL Server 역할을 사용하는 방법

Sql Server Yeoghal Eul Sayonghaneun Bangbeob



SQL Server의 용도는 데이터를 저장, 검색 및 조작하는 것입니다. SQL Server의 주요 기능 중 하나는 다양한 사용자 및 그룹에 권한을 부여하고 관리하는 기능입니다. SQL Server 역할은 데이터베이스 관리자가 유사한 요구 사항을 가진 사용자 그룹에 권한 집합을 할당할 수 있는 강력한 도구입니다.

이 문서에서는 사용 가능한 다양한 역할 유형에 대한 개요, 이러한 역할을 사용자에게 할당하는 방법의 예, 이러한 역할을 관리하는 방법에 대한 팁을 포함하여 SQL Server 역할을 사용하는 방법에 대한 가이드를 제공합니다.







SQL 역할이란 무엇입니까?

역할을 통해 DBA는 권한을 보다 효율적으로 관리할 수 있습니다. 먼저 역할을 생성해야 합니다. 그런 다음 역할에 권한을 할당한 다음 그에 따라 역할에 로그인을 추가합니다.



SQL Server는 주로 두 가지 유형의 역할을 지원합니다.



  • 고정 서버 역할: 이러한 역할에는 이미 사전 정의된 권한 세트가 있습니다.
  • 사용자 정의 서버 역할: 이러한 역할은 조직의 요구 사항에 맞게 변경할 수 있습니다.

SQL Server 역할 유형

SQL Server는 사용자에게 권한을 할당하는 데 사용할 수 있는 몇 가지 기본 제공 역할을 제공합니다. 다음은 가장 일반적인 역할과 해당 권한 중 일부입니다.





  • 대량 관리자: bulkadmin 고정 서버 역할의 구성원은 'BULK INSERT' 문을 실행할 수 있습니다.
  • 시스템 관리자: 이 역할은 가장 높은 수준의 권한을 가지며 데이터베이스 및 로그인 생성, 수정 및 삭제를 포함하여 SQL Server 인스턴스에 대한 모든 작업을 수행할 수 있습니다.
  • 서버 관리자: 이 역할은 메모리 할당 및 네트워크 프로토콜과 같은 서버 수준 설정을 구성할 수 있지만 데이터베이스를 수정할 수는 없습니다.
  • 보안 관리자: 이 역할은 로그인, 역할 및 암호 생성 및 수정을 포함하여 로그인 및 해당 권한을 관리할 수 있습니다.
  • 프로세스 관리자: processadmin 고정 서버 역할은 구성원에게 SQL Server 데이터베이스 엔진 인스턴스 내에서 현재 실행 중인 프로세스를 종료하거나 중지할 수 있는 권한을 부여합니다.
  • dbcreator : 데이터베이스를 생성, 수정, 제거할 수 있는 권한은 있으나 기타 관리 업무를 수행할 수 있는 권한은 없습니다.
  • 디스크 관리자: 이 역할은 파일 생성 및 삭제, 디스크 추가 또는 제거와 같은 디스크 파일을 관리할 수 있습니다.
  • 데이터 판독기: datareader 역할에는 데이터베이스의 사용자 테이블에 저장된 모든 정보에 액세스하고 읽을 수 있는 기능이 있습니다.
  • 데이터 작성기: 데이터 작성자 역할은 데이터베이스 내의 모든 사용자 테이블에서 데이터를 삽입, 업데이트 및 삭제할 수 있는 권한을 가집니다.
  • ddladmin: 이 역할은 DDL 트리거 및 개체(뷰, 테이블 및 저장 프로시저)를 생성, 수정 및 삭제할 수 있습니다.
  • 공공의: 기본적으로 모든 SQL Server 사용자, 그룹 및 역할은 공용 고정 서버 역할에 자동으로 포함됩니다.

GUI를 사용하여 사용자 정의 서버 역할 생성

SSMS(SQL Server Management Studio)를 사용하여 GUI를 통해 SQL Server에서 사용자 정의 서버 역할을 생성할 수 있습니다. SSMS에서 GUI를 사용하여 사용자 정의 서버 역할을 생성하려면 다음 단계를 따르십시오.

1. SSMS(SQL Server Management Studio)를 시작하고 특정 SQL Server 인스턴스에 대한 연결을 설정합니다.



2. 보안 -> 서버 역할 -> 새 서버 역할로 이동합니다.

3. 일반 페이지에서 새 역할의 이름을 지정합니다.

4. Securables 페이지에서 역할이 권한을 가질 서버 수준 보안 개체를 지정합니다.

5. 구성원 페이지에서 사용자 또는 기타 역할을 추가합니다.

T-SQL을 통한 서버 역할 생성 및 사용

SQL Server에서 T-SQL을 사용하여 서버 역할을 만들고 사용하는 것은 서버 수준 권한을 관리하는 또 다른 방법입니다. T-SQL을 사용하여 사용자 정의 서버 역할을 만들려면 다음 단계를 따라야 합니다.

1. 새 쿼리 창을 열고 다음 코드를 실행하여 새 서버 역할을 만듭니다.

-- << 사용자 정의 서버 역할 생성

사용 [마스터]

가다

서버 역할 생성 [주니어 DBA]

가다

이 예에서는 '주니어 DBA'라는 새 서버 역할을 생성합니다.

2. 다음 코드를 실행하여 새 역할에 권한을 부여합니다.

사용 [마스터]

가다

GRANT CREATE ANY DATABASE --<< 이제 db를 생성할 수 있습니다.

TO [주니어 DBA]

가다

이 예에서는 새 역할인 '주니어 DBA'에게 데이터베이스를 생성할 수 있는 권한을 허용합니다.

GRANT VIEW ANY DATABASE --<< 모든 db만 볼 수 있고 테이블은 볼 수 없음

TO [주니어 DBA]

가다

이 예에서 'GRANT VIEW ANY DATABASE' 명령은 역할이 서버의 모든 데이터베이스에 대한 메타데이터를 볼 수 있도록 서버 수준 권한을 부여하는 데 사용됩니다. 이 경우 이전에 생성한 '주니어 DBA' 서버 역할에 이 권한을 부여합니다.

그러나 “VIEW ANY DATABASE” 권한을 부여한다고 해서 데이터베이스 내의 모든 데이터에 액세스할 수 있는 권한이 사용자 또는 역할에 부여되는 것은 아니며 단순히 메타데이터(예: 데이터베이스 이름 및 스키마)를 볼 수 있다는 점에 유의해야 합니다.

3. 다음 코드를 실행하여 새 역할에 로그인 또는 사용자 계정을 추가합니다.

--새 서버 역할에 SQL 로그인 추가

ALTER SERVER ROLE [주니어 DBA]

구성원 추가 [게시판]

가다

ALTER SERVER ROLE [주니어 DBA]

회원 추가 [리마]

가다

이 예에서는 '주니어 DBA' 역할의 구성원으로 'Papan' 및 'Rima' 계정을 추가합니다.

결론

SQL Server 역할은 데이터베이스 환경에서 사용 권한을 관리하는 강력한 도구를 제공합니다. 사용자에게 역할을 할당하면 불필요한 권한을 부여하지 않고도 필요한 데이터에 대한 적절한 수준의 액세스 권한을 갖도록 할 수 있습니다. 소규모 데이터베이스를 관리하든 대규모 엔터프라이즈 시스템을 관리하든 관계없이 SQL Server 역할을 사용하는 방법을 이해하는 것은 데이터의 보안과 무결성을 유지하는 데 도움이 되는 중요한 기술입니다.