SQL Server 2005 기반의 데이터베이스 자습서가 있기 때문에 여기에 사용된 샘플 데이터베이스는 SQL Server 2005용 AdventureWorks이고 내 컴퓨터에는 SQL Server 2008이 설치되어 있으며 샘플 데이터베이스는 SQL Server 2008용 AdventureWorks입니다. 처음에는 SQL Server 2005용 AdventureWorks와 SQL Server 2008용 AdventureWorks의 데이터베이스 구조가 유사해야 한다고 생각했습니다. 그러나 연습 중에 두 데이터베이스의 많은 테이블 구조가 여전히 매우 다르다는 것을 발견했습니다. . 그래서 원활한 연습을 위해 Microsoft 다운로드 센터에서 SQL Server 2005용 샘플 데이터베이스 AdventureWorks를 다운로드하여 SQL Server 2008에 연결하기로 결정했습니다. SQL Server 2008의 최고 관리자 계정 "sa"를 사용하여 SQLSERVER2008 인스턴스에 로그인했습니다.
SQL Server 2005용 샘플 데이터베이스 AdventureWorks를 연결하면 다음 그림이 나타납니다. up 오류:
"물리적 파일을 열거나 생성하는 동안 CREATE FILE에서 운영 체제 오류 5(액세스 거부)가 발생했습니다.."라는 기본 메시지를 자세히 살펴보았습니다. .)'을 보면 첨부할 데이터 파일에 대한 작업 권한이 부족하다는 것을 한눈에 알 수 있습니다. 일반적인 사고 습관에 따라 작업 권한이 부족한 파일에는 충분한 작업 권한을 부여합니다. 예를 들어 일부 네티즌들은 “첨부할 데이터 파일과 해당 로그 파일에 대한 권한을 모두에게 부여하라”고 주장했다. 인증 과정은 다음 3개의 스크린샷에 나와 있다(데이터 파일과 로그 파일 모두 인증이 필요하다는 점 참고). 🎜>
SQL Server 2008의 현재 인스턴스 서비스 관련 정보를 보면 알 수 있다. SQL Server 구성 관리자(SQL Server Configuration Manager)를 열어서 현재 연결되어 있는 인스턴스 서비스 관련 정보를 확인하면 다음과 같다. 그림:
(현재 인스턴스 서비스 관련 정보)
현재 인스턴스의 로그인 ID가 SQLSERVER2008인 것으로 확인되었습니다. "NT AUTHORITYLocalService" 즉, 시스템에서 승인한 [Local Service] 작업인 경우 로컬 서비스도 사용자 그룹입니다. 즉, [Local Service] 사용자 그룹(Everyone 대신)에게만 권한을 부여한다면 SQL Server 2008에서 sa 계정을 사용하여 데이터베이스를 연결할 수 있어야 합니다. 이를 위해 방금 해당 데이터 파일 및 로그 파일에 부여한 권한을 모두 삭제한 후 해당 데이터 파일 및 로그 파일에 대한 권한을 LocalService 사용자 그룹에 부여한 후 해당 데이터베이스를 다시 연결을 시도하여 첨부 파일이 있는지 찾아보십시오. 정말 성공할 수 있어요! 말할 필요도 없이 [로컬 서비스] 사용자 그룹에 운영 체제 권한을 부여하는 것이 모든 사람에게 부여하는 것보다 확실히 훨씬 안전합니다.
위에서 언급한 방법으로 데이터 파일의 원래 권한 범위를 변경했습니다(원래 권한 범위는 SYSTEM, [로컬 시스템] 사용자 그룹 및 xrm 시스템 관리자만 해당). 더 좋은 방법은 데이터 파일의 권한 범위를 변경하지 않는 것입니다. 여전히 연결되어 있고 SA로 로그인되어 있는 SQL Server 2008 인스턴스도 해당 데이터 파일에 액세스할 수 있습니다. 이 목표를 달성하려면 해당 인스턴스의 로그인 ID를 SYSTEM [로컬 시스템] 사용자 그룹으로 변경하기만 하면 됩니다. SYSTEM도 해당 데이터 파일의 권한 내 사용자 그룹이며 SQL Server 인스턴스는 다음과 같이 실행됩니다. 로컬 시스템의 보안이 강화됩니다. 다음 그림과 같이 SQL Server 구성 관리자에서 해당 SQL Server 인스턴스의 로그인 ID를 [로컬 시스템]으로 변경할 수 있습니다.
( 로그인 수정 인스턴스의 ID)
(인스턴스의 로그인 ID는 LocalSystem이 됩니다.)
그런 다음 해당 인스턴스 서비스를 다시 시작하고 다시 시작합니다. - SA ID 연결을 사용하여 해당 SQL Server 2008 인스턴스에 로그인하고 데이터베이스 연결을 시도하면 데이터베이스도 성공적으로 연결할 수 있습니다. ! !
실제로 해당 데이터베이스를 연결하기 위해 해당 SQL Server 2008 인스턴스에 SA로 특별히 로그인할 필요가 없다면 해당 인스턴스에 연결할 때 SQL Server 2008의 경우 인증을 위해 [Windows 인증]을 선택하면 위에서 설명한 대로 별도의 수정 없이 데이터베이스를 연결할 수 있습니다. 그 이유는 [Windows 인증]은 현재 운영 체제의 사용자 권한을 사용하기 때문입니다. 일반적으로 충분합니다. 또한, [SQL Server 구성 관리자]에서 인스턴스 서버에서 할 수 있는 작업을 Windows [서비스]
SQL Server에 연결된 데이터베이스의 오류 5123에 대한 올바른 해결 방법에 대한 관련 기사를 더 보려면 PHP 중국어 웹사이트를 주목하세요!