SQL Server 2012에서 읽기 전용 서버 역할을 만드는 방법은 무엇입니까?


15

새 서버 역할을 만들 때 "모든 데이터베이스보기"권한을 부여하고 있지만이 권한만으로도 사용자는 시스템 데이터베이스를 볼 수 있습니다.

읽기 전용이고 모든 데이터베이스를 읽을 수있는 서버 역할을 만들려고합니다.

사용자 데이터베이스를 읽기 위해 사용자 정의 서버 역할을 만드는 방법이 있습니까? 아니면 사용자 당 사용자 매핑을 통해이 작업을 수행해야합니까?

답변:


16

이 때문에 코멘트 너무 길고해서 대답으로이 게시 됩니다 곧 다른 사용자와 관련.

SQL Server 2014에는 이러한 유형의 시나리오를 정확하게 지원하는 몇 가지 새로운 서버 수준 권한이 추가되었습니다. 감사를 염두에두고 설계되었지만 이러한 유형의 요구 사항도 해당 청구서에 맞는 것으로 보입니다. 서버 수준 로그인에 다음 두 가지 권한을 간단히 추가 할 수 있습니다.

CONNECT ANY DATABASE

SELECT ALL USER SECURABLES

전자는 소리가 들리 듯이 로그인을 모든 데이터베이스에 연결할 수 있습니다. 이것에 대한 좋은 점은 미래에 생성되는 데이터베이스에서도 가능하다는 것입니다 (명시 적 거부를 설정하지 않은 경우,이 권한이있는 로그인으로부터 특정 사용자 데이터베이스를 보호 할 수있는 방법입니다). 후자는 로그인이 액세스 할 수있는 모든 데이터베이스에서 읽기 작업을 수행 할 수있게합니다. 따라서 SELECT테이블, 뷰, UDF 등에서 할 수는 있지만 UPDATE작업 을 수행 할 수는 없습니다 (이 권한이 언제 이해되는지 테스트하지 않았습니다. 저장 프로시 저는 DML을 수행합니다). 조합이 작업 위대한 당신은 크게 벌리는 전체 서버에 대한 읽기 액세스를 로그인을 제공하기 위해, 또는 수있게하려면 더 세밀한 당신이 전통적인 부여 할 수 있습니다 CONNECT특정 데이터베이스에 권한 및 SELECT ALL USER SECURABLES권리 의지로그인이 명시 적으로 액세스 할 수있는 데이터베이스 에만 작동합니다.

2014 보안 변경 사항은 여기에 설명되어 있습니다 ; 아니라, 부분적으로 - 데이터베이스 수준 권한을 잊어 버렸습니다 ALTER ANY DATABASE EVENT SESSION. 여기에는 관련이 없습니다.


앞으로 나올 서버에 대한 확장 된 답변에 감사드립니다. 이 작업 / 확인은 서버 수준에 있습니다. DB 호환성 수준에 대한 의견이 있습니까? 따라서 DB CL이 2012 인 경우 2014 기능이 계속 작동합니까?
SnapJag

@SnapJag 호환성 수준은 보안 기능과 관련이 없으며 주로 T-SQL 구문 분석 방법과 옵티마이 저가 쿼리 계획을 생성하는 방법에 관한 것입니다.
Aaron Bertrand

@AaronBertrand 데이터베이스 수준에서도 업데이트를 허용하기 위해 서버 수준 역할에 설정할 수있는 권한이 있는지 알고 있습니까? (sysadmin 고정 역할은 확실하지만 사용자 정의 서버 역할에
대해서도 가능

@MaxiWheat 아니요, 그렇게하는 사소한 방법을 생각할 수 없습니다. 죄송합니다.
Aaron Bertrand

FWIW 이것은 Azure SQL Database에서 작동하지 않습니다. [NameOfUserOrGroup]에 모든 데이터베이스 연결 부여이 버전의 SQL Server에서는 보안 가능한 클래스 'server'가 지원되지 않습니다.
Dzejms 2019

8

서버 수준의 '모든 데이터베이스 읽기'권한이 없으며 서버 수준 역할에 데이터베이스 수준 권한을 부여 할 수 없습니다.

예, 사용자를 데이터베이스에 개별적으로 매핑해야합니다. Active Directory를 사용하는 경우 Windows 그룹을 생성 한 다음 해당 그룹에 SQL Server에 로그인 한 다음 해당 그룹의 모든 데이터베이스에 db_datareader를 적용하십시오 (각 데이터베이스에서 사용자를 작성해야 함).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.