MSSQL 에서 사용 자 를 삭제 할 때 데이터베이스 주 체 는 이 데이터베이스 저장 소 에서 삭제 할 수 없 는 구조 가 있 습 니 다.
1.안전성->구조 아래 에 해당 사용자 가 존재 하 는 지 확인 하고 있 으 면 삭제 합 니 다.
사용자 아래 에서 이 사용 자 를 삭제 할 수 있 는 지 없 는 지 다시 한번 시도 해 보 세 요.만약 안 된다 면 아래 의 문법 을 사용 하 세 요.
SQL 문 구 를 실행 합 니 다.
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
--그리고 수 동 으로 삭제 하면 된다.
선택 한 사용자 가 대상 을 가지 고 있 기 때문에 이 사용자 의 해결 방법 을 제거 할 수 없습니다.
use
go
declare tb cursor local
for
select 'sp_changeobjectowner '
+quotename(
+quotename(user_name(uid))
+'.'+quotename(name),'''')
+',''dbo'''
from sysobjects
where objectproperty(id,N'isusertable')=1
and uid<>user_id('dbo')
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
셋째방법 1(화하 상호 연결 전문 기술 알림:데이터 베이스 저장 과정 변경 과 관련 되 기 때문에 강제 삭제 법 은 추천 하지 않 습 니 다)
우선 네가 해 야 할 첫 번 째 일.
기업 관리자->서버 선택->속성->서버 설정->시스템 디 렉 터 리 를 선택 합 니 다...->확정 하 다.
두 번 째 단계
데이터 베 이 스 를 찾 아서 sysusers 표를 찾 으 면 이전 사용자 가 삭제 합 니 다.
세 번 째 단 계 는 돌아 가세 요.
제4 부 사용자 재 구축 하면 됩 니 다.
방법 2
mssql 에 선 택 된 사용자 가 대상 을 가지 고 있어 삭제 할 수 없 는 처리
--아래 코드 를 쿼 리 분석 기 에서 실행 하고 라 이브 러 리 이름 수정
use
go
declare tb cursor local
for
select 'sp_changeobjectowner '
+quotename(
+quotename(user_name(uid))
+'.'+quotename(name),'''')
+',''dbo'''
from sysobjects
where objectproperty(id,N'isusertable')=1
and uid<>user_id('dbo')
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
MSSQL 백업 을 다른 서버 에 이식 하여 복원 할 때 발생 하기 쉬 운 문제...MSSQL 백업 을 다른 서버 에 이식 하여 복원 할 때 발생 하기 쉬 운 문제,특히 가상 호스트 에서 백업 한 데이터 베 이 스 를 이 컴퓨터 에서 복원 하 는 문제...
SQL 의 원래 사용자 이름과 비밀 번 호 를 잘못 사용 하 는 경우 가 발생 합 니 다.
시스템 시트 를 삭제 할 수 없습니다.
sa 연결 로 Select 할 때 알림 표 이름 이 잘못 되 었 습 니 다.
원래 백업 데이터베이스 에 있 는 사용자 이름 을 삭제 할 수 없습니다."선택 한 사용자 가 대상 을 가지 고 있 기 때문에 이 사용 자 를 제거 할 수 없습니다."
주요 원인 은 원래 의 백업 복원 시 원래 사용자 의 정 보 를 보존 하여 고립 된 사용자 가 발생 하기 때문이다.
이 럴 때 는 spchangeobject owner 는 대상 의 모든 관 계 를 다른 사용자 에 게 변경 하고 데이터베이스 대상 의 소유 자 를 변경 합 니 다.
형식:
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
예 를 들 어 조회 분석 기 에 입력:
sp_changeobjectowner 'web102101.tablename', 'dbo'
순서대로 모든 소속 사용 자 를 dbo 로 바 꾼 다음 현재 데이터베이스 사용자 중 고립 된 사용 자 를 삭제 하고 보안 에서 로그 인 정 보 를 삭제 합 니 다.
새 사용 자 를 차례대로 만 들 수 있 습 니 다.
다음은 보충 사항 입 니 다.
Microsoft SQL Server 오류:15138 삭제 가 사용자 에 게 실 패 했 습 니 다.데이터베이스 주 체 는 이 데이터베이스 에 구조 가 있어 삭제 할 수 없습니다.해결 방법
사용자 에 게"***"를 삭제 하 는 데 실 패 했 습 니 다.(Microsoft.SqlServer.Smo)
도움말 에 대한 정 보 는 다음 을 누 르 십시오:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=
9.00.1523.00&EvtSrc=Microsoft.SqlServer.Management.Smo.
ExceptionTemplates.FailedOperationExceptionText&EvtID=삭제+User&LinkId=20476
------------------------------
기타 정보:
Transact-SQL 문 구 를 실행 하거나 일괄 처리 할 때 이상 이 발생 했 습 니 다.(Microsoft.SqlServer.ConnectionInfo)
------------------------------
데이터베이스 주 체 는 이 데이터베이스 에 구 조 를 가지 고 있어 삭제 할 수 없습니다.(Microsoft SQL Server 오류:15138)
도움말 에 대한 정 보 는 다음 을 누 르 십시오:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.1399&EvtSrc=MSSQLServer&EvtID=15138&LinkId=20476
해결 방법
이 사용자 가 대응 하 는 구 조 를 삭제 한 다음 해당 하 는 사용 자 를 삭제 합 니 다.
순서
1。SQL SERVER MANAGEMENT STUDIO--데이터베이스--보안--프레임 워 크,해당 프레임 워 크 먼저 삭제
2。SQL SERVER MANAGEMENT STUDIO--데이터베이스--보안-->사용자,해당 사용자 삭제
해결 방법
--다음 SQL 문 구 를 수행한다
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
--그리고 수 동 으로 삭제 하면 된다.