连接数据库时出现“访问被拒绝”的错误提示

159

我正在使用SQL Server 2008开发版。我尝试附加AdventureWorks2008数据库。

当我尝试附加时,出现了“拒绝访问”的错误。根据事件日志,这是来自操作系统的:

打开失败:无法为文件号0打开文件D:\ProjectData\AdventureWorks\AdventureWorksLT2008_Data.mdf。操作系统错误:5(拒绝访问)。

我认为这是“NTFS问题”,但是我的系统和我都具有两个文件的修改权限。

我发现,如果我以sa身份登录,则可以成功附加数据库,但我的用户帐户不起作用。

我是机器上本地管理员组的成员,并且在SQL Server实例中处于sysadmin角色。

为什么我必须以sa身份登录才能成功附加数据库?


MDF文件是否加密了? - Brettski
不,对我来说真正好奇的是,如果我使用 sa(使用管理工具)登录,则可以正常工作,但如果我使用本地管理员帐户,则无法正常工作。我的帐户是管理员,域管理员,并且在安装 SQL Server 时我使用的就是这个帐户(在设置期间有一个选项可以将我的当前帐户设置为 sysadmin,我也这样做了)。 - JMarsch
1
这就是W7中UAC的工作方式,毫不意外。 - Al Kepp
@AlKepp 不是UAC的问题。只需使用sa登录(SQL服务器帐户,与UAC无关)即可解决问题。此外,仅通过成为本地管理员组的成员,我就可以获得我的权限 - 我不必提升权限才能使我的AD凭据工作。 - JMarsch
31个回答

0

我曾经在SSMS(2016)上尝试附加AdventureWorks2012数据库,但是最终通过以下代码成功了,这段代码来自Mohammad Elsheimy的CodeProject文章

CREATE DATABASE AdventureWorks2012
    ON PRIMARY (FILENAME='D:\Dev\SQL Server\AdventureWorks2012.mdf')
    FOR ATTACH;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接