Site icon Mr. 沙先生

MSSQL 2008 使用者群組或角色在 Database 的目前資料庫中已經存在

這個問題是在今天要還原一個新的資料庫的過程中,建立 Login & User 對應的時候出現的問題

使用者、群組或角色 ‘DB_USER’ 在目前的資料庫中已經存在。

 

在實際要還原的資料庫名稱 DB 內並無 DB_USER 的任何資料,所以不會有已存在 USER 的狀況

 

在 MSSQL 遇上這樣類似的狀況的時候,我都會習慣用 TSQL 一步一步執行來將問題點切割開來看

在 SSMS 建立 User Login 的這段其實就是在執行以下指令

USE [master]
GO
CREATE LOGIN [DB_USER] WITH PASSWORD=N'密碼', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [DB]
GO
CREATE USER [DB_USER] FOR LOGIN [DB_USER]
GO
USE [DB]
GO
ALTER USER [DB_USER] WITH DEFAULT_SCHEMA=[dbo]
GO

 

在此範例的過程中是在 CREATE USER 這段出現了錯誤

無法使用資料庫 DB 的記錄檔

 

檢查 DB 的 ldf 紀錄檔並沒有爆掉或已滿的狀況,判斷可能是在 restore 的過程中有誤,所以造成交易紀錄檔截斷而無法使用。

在這邊就沒有多花時間,直接將這個資料庫離線、再上線即可正常寫入交易紀錄檔 (相對的調整 DB simple mode 也是可以的)

 

最後給予 DB_USER 權限

EXEC sp_addrolemember N'db_owner',N'DB_USER'

 

 

 

參考資料:

使用 SSMS 建立 Login 的使用者對應時,遇到”使用者群組或角色在【資料庫名稱】的目前資料庫中已經存在”的問題排除(一點通系列 – MVP 撰寫)

Exit mobile version