[sql-server] 데이터베이스 다이어그램 지원 개체를 설치할 수 없습니다 … 유효한 소유자가 없습니다

SQL Server 2008을 사용하여 데이터베이스 다이어그램을 만들려고했지만 오류가 발생합니다.

이 데이터베이스에 유효한 소유자가 없기 때문에 데이터베이스 다이어그램 지원 오브젝트를 설치할 수 없습니다. 계속하려면 먼저 데이터베이스 특성 대화 상자의 파일 페이지 또는 ALTER AUTHORIZATION 문을 사용하여 데이터베이스 소유자를 유효한 로그인으로 설정 한 후 데이터베이스 다이어그램 지원 오브젝트를 추가하십시오.

그런 다음 다음을 시도했습니다.

EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO

다음 오류가 나타납니다.

메시지 15404, 수준 16, 상태 11, 줄 1 Windows NT 그룹 / 사용자 ‘WIN-NDKPHUPPNFL \ Administrator’, 오류 코드 0x534에 대한 정보를 얻을 수 없습니다.

문제는 PC의 이름이 “DevPC”로 변경되었다는 것입니다. 또한 업데이트 스크립트에서도이 이름을 변경했지만 여전히 동일한 오류 15404입니다.

이 성가신 오류를 해결하려면 어떻게해야합니까?



답변

데이터베이스 소유권을 위해서는 SQL 인증 계정을 고려해야합니다. 그러면 계정이 오가거나 데이터베이스 나 인스턴스가 다른 서버로 이동하고 다음 PC 이름이 변경 될 염려가 없습니다. 우리가 사용하는 여러 시스템이 있습니다.

ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];

또는 소유자를 해당 로컬 관리자 계정으로 변경하려면 다음과 같아야합니다.

ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];

머신의 이름을 바꾸면 이름이 DevPC있던 로컬 계정이 제거 WIN-ND...\Administrator되어 데이터베이스의 현재 소유자도 무효화됩니다.

SELECT @@SERVERNAME;정확하지 않은 경우 ( DevPC) 서버 이름 변경이 SQL Server 내에서 유지되도록하기 위해 다음을 발행 할 수도 있습니다.

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO


답변

SQL Server Management Studio에서 다음을 수행하십시오.

  1. 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.
  2. 옵션 페이지로 이동
  3. “호환성 수준”이라는 레이블이 붙은 드롭 다운에서 “SQL Server 2005 (90)”3-1을 선택하십시오. 비교 오류가 발생하면 “SQL Server 2008″을 선택하십시오.
  4. 파일 페이지로 이동
  5. 소유자 텍스트 상자에 “sa”를 입력하십시오. 5-1 또는 타원 (…)을 클릭하고 올바른 소유자를 선택하십시오.
  6. 확인을 누르십시오

이 작업을 수행 한 후에는 데이터베이스 다이어그램에 액세스 할 수 있습니다.

여기에 이미지 설명을 입력하십시오


답변

USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

효과가있다.


답변

소유자 텍스트 상자에 “sa”대신 “SA”를 입력하십시오. 이것은 나를 위해 일했습니다.


답변

나는 같은 문제가 있었다.
직장에서 같은 날 집에서 만든 다이어그램을보고 싶었습니다. 그러나 나는이 메시지 때문에 할 수 없었다.
데이터베이스 소유자가 예상대로 내 컴퓨터의 사용자라는 것을 알았습니다. 그러나 컴퓨터가 회사 도메인에 있고 회사 네트워크에 연결되어 있지 않기 때문에 데이터베이스에서 소유자를 확인할 수 없습니다.

그래서 내가 한 일은 소유자를 로컬 사용자로 변경하는 것이 었습니다 !
이것이 누군가를 돕기를 바랍니다.

데이터베이스, 속성, 파일, 소유자를 마우스 오른쪽 버튼으로 클릭하여 사용자를 변경하십시오.


답변

이것은 나를 위해 그것을 고쳤다. 데이터베이스 특성 창의 ‘파일’섹션에있는 소유자를 설정하며 관리 스튜디오에서 스크립트로 작성합니다.

USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

sp_changedbowner 설명서 에 따르면 이 기능은 더 이상 사용되지 않습니다.

이스라엘의 대답을 바탕으로합니다. Aaron의 대답은 사용되지 않는 변형입니다.


답변

데이터베이스 선택-마우스 오른쪽 버튼 클릭-속성 선택

페이지 왼쪽에서 FILE을 선택하십시오.

소유자 상자에서 3 개의 점 (…)이있는 단추를 선택하십시오.

이제 사용자를 선택하고 확인을 클릭하십시오.