사용자 계정의 파일을 복원하고 볼 수 있도록 SQL Server 2012를 구성하려면 어떻게합니까?


10

내 컴퓨터에서 SQL Server 2012 인스턴스를 서비스로 실행하고 있으며 서비스 페이지에 따라 "NT Service \ MSSQLSERVER" 계정으로 로그온합니다 . 그러나 컴퓨터 관리 화면의 "로컬 사용자 및 그룹"영역을 포함하여 다른 곳에서는 해당 계정 이름을 볼 수 없습니다. 아래 링크에서 알 수 있듯이 이는 사용자 계정이 아니라 해당 상자에 서비스 이름이기 때문입니다. Microsoft는 "계정"이라는 레이블을 유용하게 지정했습니다. 이 시점에서 많은 사람들이 혼란스러워하는 것을 볼 수 있습니다.

내가 수행하려는 작업은 SSMS 대화 상자 "백업 파일 찾기"를 사용하여 파일을 복원하는 것입니다. "백업 파일 찾기"는 표준 Windows 파일 열기 대화 상자와 완전히 다른 대화 상자를 사용합니다. 아마도 "원격"작업을 수행하고 있기 때문입니다. 최종 사용자 혼동의 또 다른 풍부한 소스 인 SQL 서버의 보안 컨텍스트는이 질문이 해결되는 데 도움이되기를 바랍니다.

지금까지 내 폴더 중 하나에있는 백업 .mdf / .bak 파일을 복원하려면 모든 사용자가 해당 폴더를 읽을 수 있도록 설정해야합니다. 그렇지 않으면 SQL Server "Locate Backup을 사용하여 해당 폴더에 액세스 할 수 없습니다. 파일 "창. 나는 당신이 다른 사용자 계정과 권한을 가진 서비스와 대화하는 GUI를 사용하고 있다는 사실을 알고 있습니다 .Microsoft의 아무도 아무도 당신에게 명확하게 신경 쓰지 않았으며, Windows 시스템 관리에 수년간의 경험이 있어도 매우 혼란 스럽습니다. .

새 SQL Server 인스턴스를 설치 한 후 보안을 설정하는 방법을 알려주는 SQL Server 설명서 페이지가 누락 되었으면합니다.

같은 포럼 게시물 이 하나 "이 복잡하다"라고 심지어 마이크로 소프트 직원이, 그리고 데날리에서 "다시 변경"고. 이제 SQL Server 2012에서이 기능이 어떻게 작동하며 사용자에게 속한 파일을 읽기위한 권한을 SQL 데이터베이스 엔진의 보안에 어떻게 추가 할 수 있습니까 SID?


SQL이 표준 대화 상자를 사용하지 않는 이유는 SQL에서 읽을 수없는 파일을 선택할 수 없기 때문입니다. 보안을 구성하는 방법에 대해 SQL이 실행되는 계정을 변경할 수 있습니까? 아니면 현재 상태로 유지하고 싶습니까? 서비스 계정을 변경해도 문제가 해결되지 않습니다. 명명 된 계정을 사용하므로 일반적인 MSSQLSERVER 계정으로 테스트를 수행 할 수 없습니다.
cfradenburg


모두가 개발시 일반 사용자 ID로 실행되도록 SQL Server를 변경하는 경우 "모범 사례"가 될 수 있습니다. 좋은 아이디어인지 아닌지 궁금합니다. 추가해야하는 폴더에 "NT Service \ MSSQLSERVER"를 수동으로 추가하는 것이 표준 아이디어라면 이것이 가장 논리적으로 최소한의 수정일 것입니다. SQL 서버 SSMS UI가이 숨겨진 "NT Server \ xxx"계정 ID에 연결하는 것이 조금 더 쉬웠 으면 좋겠습니다.
Warren P

답변:


5

참고로 "Denali"는 SQL Server 2012입니다. "최종 사용자 혼동"과 관련하여 최종 사용자가 SSMS와 관련하여 혼동되는지 여부와 관련된 것은 아닙니다. Microsoft는 일반 최종 사용자 용이 아니라 데이터베이스 관리자 및 / 또는 데이터베이스를 관리해야하는 사용자를 위해이 도구를 개발하지 않았습니다. 따라서 제공된 도구와 그 기능에 대한 학습 곡선이 있습니다. SSMS가 SQL Server 2005와 함께 출시 된 이후로 파일 대화 상자는 SSMS에서 이와 같은 방식으로 사용되었습니다. 그 이후로 데이터베이스를 백업, 복원 또는 연결하기 위해 T-SQL 문을 주로 사용하는 이유가 여기에 있습니다. .

SQL Server로 파일 시스템 권한을 구성하려면 여기 에서 MSDN의 지침을 따르십시오 .

서비스 계정 처리 방식은 SQL Server와 함께 제공되지 않거나 SQL Server로 인해 운영 체제 수준이 변경 되었기 때문입니다. Window Server 2008 R2는 서비스 계정과 관련하여 약간 더 많은 보안 계층을 제공했습니다. 기본 설정으로 설치 한 경우에도 서비스 계정이 도메인의 리소스에보다 쉽게 ​​액세스 할 수 있다는 이점이 있습니다. 이 링크 는 SQL Server 2012에서 서비스 계정 권한을 처리하는 방법에 대한 자세한 내용을 제공합니다. 링크에서 발췌 한 내용은 SQL Server 2012에서 기본적으로 사용되는 가상 계정에 대한 것입니다.이 기사에는 링크가 있습니다. 윈도우와 서비스 계정의 개념에 대한 논의 여기. Window Server 2008 R2에서 왔지만 Window Server 2012 및 Window Server 2012 R2에서도 여전히 유효하다고 생각합니다.

가상 계정

Windows Server 2008 R2 및 Windows 7의 가상 계정은 서비스 관리를 단순화하기 위해 다음 기능을 제공하는 관리되는 로컬 계정입니다. 가상 계정은 자동 관리되며 가상 계정은 도메인 환경의 네트워크에 액세스 할 수 있습니다. Windows Server 2008 R2 또는 Windows 7에서 SQL Server를 설치하는 동안 서비스 계정에 기본값을 사용하면 인스턴스 이름을 서비스 이름으로 사용하는 가상 계정이 NT SERVICE \ 형식으로 사용됩니다. 가상 계정으로 실행되는 서비스는 \ $ 형식의 컴퓨터 계정 자격 증명을 사용하여 네트워크 리소스에 액세스합니다. SQL Server를 시작하기 위해 가상 계정을 지정할 때는 암호를 비워 두십시오. 가상 계정이 SPN (Service Principal Name)을 등록하지 못하면 SPN을 수동으로 등록하십시오. SPN을 수동으로 등록하는 방법에 대한 자세한 내용은 Kerberos 연결을위한 서비스 사용자 이름 등록을 참조하십시오. 참고 참고 가상 계정은 클러스터의 각 노드에서 동일한 SID를 가지지 않으므로 SQL Server 장애 조치 클러스터 인스턴스에 가상 계정을 사용할 수 없습니다.

다음 표는 가상 계정 이름의 예입니다.

데이터베이스 엔진 서비스의 기본 인스턴스 : NT SERVICE \ MSSQLSERVER 이름이 PAYROLL 인 데이터베이스 엔진 서비스의 명명 된 인스턴스 : NT SERVICE \ MSSQL $ PAYROLL SQL Server의 기본 인스턴스에있는 SQL Server 에이전트 서비스 : NT SERVICE \ SQLSERVERAGENT PAYROLL이라는 SQL Server 인스턴스 : NT SERVICE \ SQLAGENT $ PAYROLL


3
최종 사용자는 수십 가지 범주의 사람들 중 일부를 의미하며, 일부는 전문적이고 기술적으로 다양한 분야에서 유능하지만 DBA가 아닌 사람을 의미합니다. 개인적으로 DBA 조차도이 도구의 UI를 향상시킬 수 있다고 생각합니다. 강력한 타사 도구 시장은 SSMS가 무료이지만 가격 대비 가치가 있다는 또 다른 지표입니다.
Warren P

1
2017 년에는 더 나아지지 않았습니다. 짧은 대답은 "더 나아지지 않을 것입니다. 어떻게 작동하는지 배우지 만 UI가 제대로 설계되지 않았습니다"입니다.
Warren P

2

다른 폴더의 파일을 보거나 액세스하려면 폴더에 대한 NT SERVICE\MSSQLSERVER권한을 부여 하십시오. 스크린 샷 및 관련 단계 는 SSMS의 디렉토리.bak 파일 에 게시 되지 않은 내 답변을 참조하십시오 . (폴더에 일반 사용자 / 그룹 권한을 추가하는 것과는 약간 다릅니다.)

희망이 도움이됩니다!


1

실제로 SSMS를 통해 복원을 시도하고 Windows 인증 (!)을 통해 로그인 한 경우 SQL Server 서비스가 아닌 해당 계정에 대한 권한이 필요한 Windows 계정이됩니다 ( "모두가 아닌"). 계정 혼동을 피하기를 희망합니다 서비스 계정에 다른 요구 사항이 있습니다 (예 : SQL 인증 계정을 통해 로그인 한 경우 운영 체제에서 어떤 권한을 요청해야합니까?) 이것은 SQL Server 7.0 이후로 변경되지 않았으며 아마도 그 이전도 아니 었습니다. :)


1
자격 증명을 잊지 마십시오 .
Remus Rusanu

혼동이 사라지는 지 잘 모르겠습니다 ... WA를 통해 로그온 한 경우 SQL Server 계정은 복원 할 수있는 권한이 필요하지만 (SQL Server에 관한 한) SQL Server 서비스 계정에는 읽기 권한이 필요합니다. 파일 시스템에서 .bak파일을여십시오 (명시 적으로 부여되지 않는 한 일반적으로 파일이 사용자 디렉토리에있는 경우에는 없습니다).
Bruno
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.