Microsoft SQL Server,错误916

时间:2014-04-17 03:18:09

标签: sql sql-server sql-server-2008

我正在使用Microsoft SQL Server 2012 Management Studio Express。我已经分离了我的一个数据库(它在我的办公室服务器中),.mdf.ldf文件保存到MSSQL文件夹(在我的本地服务器上)。当我分离数据库时,它说我的连接(希望服务器)无法分离数据库。然后我在分离模式中选择了drop connections选项。

现在,当我尝试附加数据库时,它不允许我附加。当我单击添加按钮时,我没有选择浏览我的文件夹。显示以下错误消息。

  

无法检索此请求的数据。(Microsoft.SqlServer.Management.Sdk.Sfc)

     

其他信息:

     

执行Transact-SQL语句或批处理时发生异常。(Microsoft SQL server.connectionInfo)。

     

服务器主体“我的用户名”无法访问当前安全上下文下的数据库“model”。(Microsoft SQL Server,错误:916)。

我该怎么办?请帮我。

2 个答案:

答案 0 :(得分:1)

要解决此问题,请按照给定的步骤操作。 (1)启动sqlserver并登录 (2)按“F7”或单击“视图 - >对象资源管理器详细信息”以打开“对象资源管理器详细信息”窗口。 (3)您将看到列标题..如“名称”,“政策健康状况”,“恢复模型”,“整理”等。 (4)右键单击标题并取消选择“排序规则”。 (5)现在刷新数据库文件夹。您将获得所有数据库列表。

答案 1 :(得分: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'