附加数据库问题。

zhuersuo 2010-10-06 10:48:18
附加数据库对于服务器“liu080306”失败。(Microsoft.Sqlserver.Smo).

其他信息:
执行Transact-SQL语句或批处理时发生了异常。
无法打开物理路径文件:“F:\数据库\abc.mdf”.操作系统错误5:“5(拒绝访问)”。



这是怎么回事啊 ?谁能帮我解决一下啊?
...全文
140 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
王向飞 2010-10-07
  • 打赏
  • 举报
回复
路径错误。
rucypli 2010-10-06
  • 打赏
  • 举报
回复
用windows验证登陆进去附加数据库
xman_78tom 2010-10-06
  • 打赏
  • 举报
回复
检查 abc.mdf 的权限设置,SQL Server 的服务帐户是否对其拥有完全控制的权限。

命令行执行 sc.exe qc mssqlserver ,其返回的 SERVICE_START_NAME 为服务帐户。
xman_78tom 2010-10-06
  • 打赏
  • 举报
回复
在命令行下执行
cacls F:\数据库\abc.mdf /e /g NetworkService:f
boqiang1988 2010-10-06
  • 打赏
  • 举报
回复
楼主有没有把源数据库文件移动到'F:\数据库\abc.mdf'里呢!还有我建议使用SQL server managementstudio来进行数据库的附加,这样操作会简便很多,而且不会出现文件路径不对的问题!
minmin007 2010-10-06
  • 打赏
  • 举报
回复
看路径对吗?是分离了后附加还是在别处拷过来附加的,关键是路径!!
claro 2010-10-06
  • 打赏
  • 举报
回复
发完才看清是mdf,抱歉!我准备配眼镜的。

看看原mdf的版本和准备附加的MSSQL数据库版本是否一致。
claro 2010-10-06
  • 打赏
  • 举报
回复
RESTORE FILELISTONLY
FROM DISK = 'F:\数据库\abc.mdf'

检查备份集是否针对需要还原的数据库有效。
zhuersuo 2010-10-06
  • 打赏
  • 举报
回复
回复xman_78tom :没有 SERVICE_START_NAME = NT AUTHORITY\NetworkService的服务账号。添加的时候也不能添加。 这该怎么解决啊?
xman_78tom 2010-10-06
  • 打赏
  • 举报
回复
右击文件,选择属性,选择安全选项卡。
zhuersuo 2010-10-06
  • 打赏
  • 举报
回复
1楼的 查看权限设置? 是右键-属性-安全吗???

2楼的 Windows 能登录进去。可是我现在需要的是 SQL Server 身份验证登录。
//附加数据库 sp_attach_db 当使用 sp_attach_db 系统存储过程附加数据库时。 sp_attach_db:将数据库附加到服务器。 语法 sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ] 参数 [@dbname =] 'dbname' 要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。 [@filename1 =] 'filename_n' 数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。 参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。 该列表还必须包括数据库分离后所有被移动的文件。 返回代码值:0(成功)或 1(失败) eg:下面的示例将 pubs 中的两个文件附加到当前服务器。 EXEC sp_attach_db @dbname = N'pubs', @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf' EXEC sp_attach_db @dbname = N'Ty20051029101451aaa', @filename1 = N'd:\5屏幕\Ty20051029101451aaa_data.mdf', @filename2 = N'd:\5屏幕\Ty20051029101451aaa_log.ldf' ---解决问题了 //删除数据库 DROP DATABASE 从Microsoft? SQL Server? 删除一个或多个数据库。删除数据库将删除数据库所使用的数据库文件和磁盘文件。 语法 :DROP DATABASE database_name [ ,...n ] 参数 :database_name 指定要删除的数据库名称。从 master 数据库中执行 sp_helpdb 以查看数据库列表。 eg: exec sp_helpdb database_name exec Drpo DataBase [Ty20051029101451aaa] //分离数据库 可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE 重新附加。 sp_detach_db Archive GO CREATE DATABASE Archive ON PRIMARY (FILENAME = 'c:\program files\microsoft sqlserver\mssql\data\archdat1.mdf') FOR ATTACH GO //显示当前数据库信息 --select * from Master..sysDatabases //新建---不行啊 CREATE DATABASE TestOA ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE RESTORE DATABASE TestOA From disk='C:\Documents and Settings\Administrator\桌面\帐套\data\Template.Dat' ALTER DATABASE TestOA SET OFFLINE WITH ROLLBACK IMMEDIATE exec sp_detach_db Km20051030011601 --分离数据库 exec sp_attach_single_file_db km20051030011601,'D:\TestDatabase\Km20051030011601.mdf'--只附加.mdf文件

22,299

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧