답변:
이는 로그인 [R2Server \ AAOUser]가 해당 데이터베이스의 사용자에게 이미 매핑되어 있음을 의미합니다. 즉, 다른 데이터베이스 사용자가이 로그인을 사용하고 있습니다. 다음 쿼리로 로그인을 사용하는 데이터베이스 사용자를 확인할 수 있습니다.
use YourDB
go
SELECT su.name as DatabaseUser
FROM sys.sysusers su
join sys.syslogins sl on sl.sid = su.sid
where sl.name = 'test' -- login
PS : 호환성보기를 사용하지 않는 스크립트 버전 :
Select sp.name as LoginName, sp.type_desc as LoginType,
dp.name as DBUser, dp.type_desc as UserType
from sys.server_principals sp
join sys.database_principals dp on dp.sid = sp.sid
where sp.name = 'test' -- your login
aspnet_regsql -E -S .\MSSQLSERVER_R2 -ssadd
을 사용하여 ASPState
데이터베이스 를 만들었습니다 . 아마 나는 이미 설정되어 있다고 생각하지만, 나는 그것을 처음부터 깨닫지 못합니다.
sys.server_principals
및 sys.database_principals
. sysusers
및 syslogins
이전 버전과의 호환성을 위해 단지가있다.
그것은 '메타 데이터 것'입니다 ...
때때로 데이터베이스 사용자는 해당 DB에서 진행되는 모든 과정에서 '손상'됩니다. (DB가 복원되고 복원 된 사본의 역할이 중첩 된 것과 다른 동작을 보았습니다.이 때문에 아래에서 시도한 결과 문제가 해결되었습니다.)
SSMS-> (보안 | 로그인 | 실패 사용자 ID | 속성 | 사용자 매핑) 에서 로그인 속성을 엽니 다 . DB가 이미 확인되었고 역할이 할당되어있는 것을 볼 수 있습니다 (완전히 정상과 같습니다).
참고 용으로 오류를 제공하는 DB에 대한 권한을 참고하십시오.
Cannot drop the user 'dbo'. (Microsoft SQL Server, Error: 15150)
Cannot drop the user 'dbo'.
오류 메시지가 나타납니다. 이 스크립트를 실행하여 문제가있는 사용자 매핑을 제거하고 문제를 해결했습니다 USE DATABASE_NAME; ALTER AUTHORIZATION ON DATABASE::DATABASE_NAME TO [sa]
. 자세한 내용은이 사이트를 사용한 소스입니다. blog.sql-assistance.com/index.php/cannot-drop-the-user-dbo
dbo
이 표시되는 것을 본다 . 이상dbo
합니다R2Server\AAOUser
. 계정에를 사용했다는 것을 기억하지 않습니다 . 다음에해야 할 일이 궁금합니다.