programing

데이터베이스 다이어그램 지원 개체를 설치할 수 없습니다...유효한 소유자가 없습니다.

abcjava 2023. 4. 11. 21:35
반응형

데이터베이스 다이어그램 지원 개체를 설치할 수 없습니다...유효한 소유자가 없습니다.

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

데이터베이스에 올바른 소유자가 없으므로 데이터베이스 다이어그램 지원 개체를 설치할 수 없습니다.계속하려면 먼저 [데이터베이스 속성(Database Properties)]대화 상자의 [파일(Files)]페이지 또는 [ALTER 인증(ALTER AUTHITION)]문을 사용하여 데이터베이스 소유자를 유효한 로그인으로 설정한 후 데이터베이스 다이어그램 지원 개체를 추가하십시오.

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

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

다음 에러가 표시됩니다.

Msg 15404, 레벨 16, 스테이트 11, 라인 1 Windows NT 그룹/사용자 'WIN-NDKPHUPNFL\Administrator', 에러 코드 0x534 에 관한 정보를 취득할 수 없습니다.

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

이 귀찮은 오류를 수정하려면 어떻게 해야 하나요?

SQL Server Management Studio에서 다음을 수행합니다.

  1. 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
  2. 옵션 페이지로 이동
  3. 오른쪽의 [Compatibility Level](호환성 레벨) 드롭다운에서 [SQL Server 2005(90)](SQL Server 2005(90)) 3-1)을 선택합니다.비교성 오류가 표시되면 [SQL Server 2008](SQL Server 2008)을 선택합니다.
  4. [파일] 페이지로 이동
  5. 소유자 텍스트 상자에 "sa"를 입력하십시오. 5-1 또는 줄임표(...)를 클릭하고 올바른 소유자를 선택하십시오.
  6. [확인]을 클릭합니다.

이렇게 하면 데이터베이스 다이어그램에 액세스할 수 있습니다.

여기에 이미지 설명 입력

데이터베이스 소유권을 위해 SQL 인증 계정을 고려해야 합니다. 그러면 계정, 데이터베이스 또는 인스턴스 이동 및 다음 PC 이름 변경에 대해 걱정할 필요가 없습니다.다음과 같은 시스템을 사용하고 있습니다.

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

또는 소유자를 로컬 관리자 계정으로 변경하는 경우 다음과 같이 하십시오.

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

을 '''로 변경하기 때문입니다.DevPC에서는, 에는 「 어카운트」라고 되었습니다.WIN-ND...\Administrator이로 인해 데이터베이스의 현재 소유자도 무효가 됩니다.

ifSELECT @@SERVERNAME;않다(「정확하지 않다」라고 것)DevPC서버명이 SQL Server 내에서 유지되도록 하기 위해 다음 명령어를 발행할 수도 있습니다.

EXEC sys.sp_dropserver @server = N'old server name';
GO
EXEC sys.sp_addserver @server = N'DevPC', @local = N'local';
GO
USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

그건 효과가 있다.

소유자 텍스트 상자에 "sa" 대신 "SA"를 입력합니다.이건 나한테 효과가 있었어.

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
저는 같은 날 직장에서 작성한 그림을 집에서 보고 싶었습니다.하지만 이 메시지 때문에 할 수 없었어요.
에 있고 않기 때문에 를 확인할 수 .그러나 컴퓨터가 회사의 도메인에 있고 회사의 네트워크에 연결되어 있지 않기 때문에 데이터베이스에서는 소유자를 확인할 수 없었습니다.

그래서 내가 한 일은 소유자를 로컬 사용자로 바꾸자 효과가 있었어!!
이게 도움이 됐으면 좋겠네요.

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

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

페이지 왼쪽에서 FILE을 선택합니다.

OWNER 박스에서 3개의 점(…)이 있는 버튼을 선택합니다.

이제 사용자 'sa'를 선택하고 OK를 클릭합니다.

이것으로 나는 해결되었다.데이터베이스 속성 창의 '파일' 섹션에 있는 소유자를 설정하고 관리 스튜디오에서 스크립트로 작성된 대로 합니다.

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

sp_changedbowner 매뉴얼에 따르면 이는 현재 권장되지 않습니다.

이스라엘의 답변에 근거합니다.애런의 대답은 이것의 비강제적인 변형이다.

나 방금 경험했어.이 페이지의 제안과 SQL Authority 제안(동일한 내용)을 읽었는데, 위의 내용은 모두 효과가 없었습니다.

결국 계정을 삭제하고 (같은 사용자 이름/비밀번호로) 다시 만들었습니다.그렇게 모든 이슈가 사라졌다.

슬프게도, 뭐가 잘못됐는지 몰라서 다른 건 말할 수 없어요.

1. Database (데이터베이스)를 오른쪽 클릭합니다.[ Properties ]를 선택합니다.3 .Microsoft sql 2008을 사용하는 경우 호환성 수준 옵션을 선택합니다.

4. 그런 다음 파일을 선택하고 소유자 텍스트 상자에 ( sa )라고 씁니다.

난 100% 잘 돼.

이 문제를 해결하는 더 쉬운 방법은 데이터베이스 이름을 마우스 오른쪽 버튼으로 클릭하고 "New Query"를 선택한 후 "exec sp_changedbowner 'sa"를 입력하고 쿼리를 실행하는 것입니다.그럼 가도 돼

microsoff sql server management studio를 오른쪽 클릭하여 admin으로 실행해야 합니다.

쿼리 에디터 ALTER AUTHERATION ON DATABASE에서만 실행하면 됩니다.당신의 데이터베이스 TO [domain\account];

진짜 문제는 기본 소유자(dbo)에 매핑된 로그인이 전혀 없다는 것입니다.데이터베이스 소유자에게 sa 로그인을 매핑하려고 하면 "User, group, or role 'dbo' is already exists..." (사용자, 그룹 또는 역할 'dbo'가 이미 존재합니다.) 라는 오류가 다시 표시되었습니다.다만, 이 코드를 사용해 보면, 실제로 동작합니다.

EXEC sp_dbcmptlevel 'yourDB', '90';

가세요

데이터베이스 권한 변경:: yourDB를 "yourLogin"으로 변경

가세요

[yourDB] 사용

가세요

사용자로 실행 = N'dbo' 복귀

가세요

[ Database ]오른쪽 버튼을 클릭하여 [properties]를 선택합니다.Microsoft SQL 2008을 사용하는 경우 호환성 수준에서 [sql 2005 [90]옵션을 선택한 후 파일을 선택하고 [sa]를 소유자의 텍스트 상자에 입력합니다.아마 효과가 있을 것이다

언급URL : https://stackoverflow.com/questions/2043382/database-diagram-support-objects-cannot-be-installed-no-valid-owner

반응형