2014-11-21 4 views
1

alter authorization 문을 사용하여 데이터베이스의 소유자를 변경하려고합니다.데이터베이스 소유권 변경 SQL Server 2012 Express

진술 :

ALTER AUTHORIZATION ON DATABASE::spentlytestlocal TO renspently 

오류 :

Cannot find the principal 'username', because it does not exist or you do not have permission

내가 소유권을 사용자 권한을 할당 확신하지만, 도움과 방향이 크게 감사합니다. 이를 위해

+0

, 은 '교장'이름 '을 찾을 수 없습니다 을 username' TO DATABASE :: TABLENAME에 대한 권한을 변경합니다. –

+0

예 현재 사용자 및 데이터베이스를 삭제하고 다시 작성하려고합니다. –

+0

데이터베이스에 대한 변경 권한 부여 : [DB_Name] TO [Login_Name];'데이터베이스 소유자는 SQL Server 로그인 데이터베이스 사용자). – DMason

답변

0

Books Online 당, 두 가지가 충족되어야 작동합니다 :

Server objects (such as databases) must be owned by a server principal (a login).

이것은 서버에 로그인 (데이터베이스뿐만 아니라 사용자가 있어야 소유권을 부여 할 계정을 의미합니다 - - 백업에서 복원 할 경우 로그인이없는 사용자가있을 수 있습니다.

둘째, 당신은 시스템 관리자가 될 필요가 실제로 의미

Requires TAKE OWNERSHIP permission on the entity. If the new owner is not the user that is executing this statement, also requires either, 1) IMPERSONATE permission on the new owner if it is a user or login; or 2) if the new owner is a role, membership in the role, or ALTER permission on the role; or 3) if the new owner is an application role, ALTER permission on the application role.

. SQL 관리자가 로컬 관리자를 sysadmin으로 포함하도록 구성되어 있지만 상승 된 권한으로 Management Studio를 시작하지 않는 경우가 일반적인 경우입니다. 존재하지 않거나 권한이 없기 때문에 혼란을 확인 미안

+0

그래서 내가하려는 것은 내가 지정한 데이터베이스의 소유자를 만드는 사용자를 만드는 것입니다. 내가 이해 한 것은 내가 만든 사용자를 서버의 로그인에 매핑해야한다는 것입니다. –

+0

아니요, 다른 방법입니다. 로그인을 생성 한 다음 해당 로그인에 소유권을 지정할 수 있습니다. 로그인은 데이터베이스의 사용자 일 필요는 없지만 허용되지는 않습니다. 로그인은 [서버] -> 보안 -> 로그인 아래에 있습니다. 그들은 데이터베이스 독립적입니다. –

+0

흠, 나는 그것을 줄 것이고, 더 상담해라, 고마워!! –

관련 문제