我正在使用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)。
我该怎么办?请帮我。
答案 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'