2014-04-17 223 views
1

我正在使用Microsoft SQL Server 2012 Management Studio Express。我分離了我的一個數據庫(它在我的辦公室服務器上),.mdf.ldf文件被保存到MSSQL文件夾(在本地服務器上)。當我分離數據庫時,它說我的連接(希望服務器)不能分離數據庫。然後,我選擇分離模式下的拖放連接選項。Microsoft SQL Server錯誤916

現在,當我嘗試附加數據庫時,它不允許我附加。當我點擊添加按鈕不給我選擇瀏覽我的文件夾。顯示下面的錯誤消息。

Failed to retrieve data for this request.(Microsoft.SqlServer.Management.Sdk.Sfc)

Additional information:

An exception occurred while executing a Transact-SQL statement or batch.(Microsoft SQL server. connectionInfo).

The server principal "my username" is not able to access the database "model" under the current security context.(Microsoft SQL server, Error:916).

我該怎麼辦?請幫幫我。

+0

此帖可能對您有所幫助http://stackoverflow.com/questions/5603205/sql-server-error-916 – Sadikhasan

+0

您使用哪一個用戶登錄? – Namphibian

+0

我嘗試了我的用戶名和管理員用戶名。但都給出了相同的結果。 – Udith

回答

0

這不是實際的附加語句的問題,而是設置嚮導UI(這是一個恥辱IMO)。使用T-SQL來附加數據庫:

create database MyDatabase 
on 
    (filename = 'c:\Data\mydatabase_data.mdf'), 
    (filename = 'c:\Data\mydatabase_log.ldf') 
for attach; 

您最好始終使用T-SQL而不是SSMS嚮導。或者使用嚮導編寫動作並在查詢窗口中執行。

此外,請檢查模型上的權限問題。使用此查詢,看看是否有任何DENY

use model; 
go 

select 
    user_name(p.grantee_principal_id), 
    dp.principal_id, 
    dp.type_desc as principal_type_desc, 
    p.class_desc, 
    object_name(p.major_id) as object_name, 
    p.permission_name, 
    p.state_desc as permission_state_desc 
from sys.database_permissions p 
inner join sys.database_principals dp 
on p.grantee_principal_id = dp.principal_id 
where p.state_desc = 'DENY' 
+0

一旦我使用創建數據庫的東西,它會給我這個錯誤消息。」CREATE DATABASE permission denied in database'master'。一旦我檢查模型的權限。它給出了下面的消息。 「服務器主體」我的用戶名「無法在當前安全上下文中訪問數據庫」模型「。」 – Udith

+0

使用sysadmin帳戶登錄。 – dean

+0

即使使用管理員帳戶,結果也是一樣。我觀察到的是,當我試圖通過右鍵單擊系統數據庫來檢查系統數據庫屬性時,只有「模型」數據庫未打開屬性窗口。當我點擊屬性時,它顯示錯誤消息:916 – Udith

1

要解決的問題......請執行以下步驟。 (1)啓動sqlserver並登錄 (2)按「F7」或點擊「View-> Object Explorer Details」打開Object Explorer Details窗口。 (3)您將看到列標題..如「名稱」,「政策健康狀況」,「恢復模型」,「整理」等。 (4)右鍵單擊標題並取消選擇「整理」。 (5)現在刷新數據庫文件夾。你會得到所有的數據庫列表。