2014-01-28 3 views
0

데이터베이스 복원 직후 데이터베이스에 대한 사용자 권한을 부여해야합니다. 나는 노력이 :SQL 서버 복원 및 사용자 권한

Use [master] 
go 

restore database DBTest 
from disk='E:\userTemp\DBTest1.bak' 
WITH MOVE 'DBTest' TO 'E:\SQLData\DBTest1.mdf', 
MOVE 'DBTest_log' TO 'F:\SQLData\DBTest1.ldf', 
replace, recovery, stats=5, maxtransfersize=1048576 
Print '---------------------------RESTORE COMPLETED ---------------------------' 

-- Create the user. 
CREATE USER [user_indi] FOR LOGIN [user_indi] 
GO 

USE [DBTest] 
GO 
EXEC sp_addrolemember N'db_owner', N'user_indi' 
GO 

나는이 작업을 수행 할 때, 나는 다음과 같은 오류 얻을 : 그래서

Msg 15023, Level 16, State 1, Line 22
User, group, or role 'user_indi' already exists in the current database.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75
User or role 'user_indi' does not exist in this database.

, 중간에 사용자를 제거하는 명령을 추가 한 것입니다. 이제는 이렇게 보입니다. 나는이 복원 허가 작업을 예약 할 필요가 나는 오류를 허용 할 수 없습니다

Msg 15151, Level 16, State 1, Line 2
Cannot drop the user 'user_indi', because it does not exist or you do not have permission.

:

Use [master] 
go 

restore database DBTest 
from disk='E:\userTemp\DBTest1.bak' 
WITH MOVE 'DBTest' TO 'E:\SQLData\DBTest1.mdf', 
MOVE 'DBTest_log' TO 'F:\SQLData\DBTest1.ldf', 
replace, recovery, stats=5, maxtransfersize=1048576 
Print '---------------------------RESTORE COMPLETED ---------------------------' 

-- Remove the user 
USE [DBTest] 
GO 

DROP USER [user_indi] 
GO 

-- Create the user. 
CREATE USER [user_indi] FOR LOGIN [user_indi] 
GO 

USE [DBTest] 
GO 
EXEC sp_addrolemember N'db_owner', N'user_indi' 
GO 

지금, 나는 오류가 발생합니다. 이 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까? RM

+0

당신의'USE [DBTest]'문장은 두 개의 다른 장소에 있습니다. 첫 번째 단계에서는 MASTER에서 사용자를 만들려고합니다. 두 번째 것은 DBTest에서 생성하는 것입니다. –

+0

그게 다야. 감사!. 나는 이것을 어떻게 대답으로 만들 수 있을지 확신하지 못한다. – user1666952

답변

0

귀하의 USE [DBTest]

두 개의 서로 다른 장소에 있습니다.

처음에는 사용자를 MASTER (으)로 만들려고합니다. 두 번째 것은 DBTest에서 생성하는 것입니다.