附加数据库时访问被拒绝

Access is denied when attaching a database(附加数据库时访问被拒绝)
本文介绍了附加数据库时访问被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是 SQL Server 2008 开发人员版.我试图附加 AdventureWorks2008 数据库.

I am using SQL Server 2008 developer edition. I was trying to attach the AdventureWorks2008 database.

当我尝试附加时,收到访问被拒绝"错误.根据事件日志,它来自O/S:

When I tried to attach, I received an "access is denied" error. According to the event log, it came from the O/S:

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

Open failed: Could not open file D:ProjectDataAdventureWorksAdventureWorksLT2008_Data.mdf for file number 0. OS error: 5(Access is denied.).

我以为是NTFS 问题",但系统(和我)对这两个文件都有修改权限.

I thought "NTFS problem", but System (and I) have modify access to both files.

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

I found that I can successfully attach the database if I log in as sa, but my user account won't work.

我是我机器上本地管理员组的成员,我在 SQL Server 实例中担任 sysadmins 角色.

I am a member of the local administrators group on my machine, and I am in the sysadmins role in SQL Server instance.

知道为什么我必须以 sa 的身份登录吗?

Any idea why I had to be logged in as sa?

推荐答案

感谢您的所有评论.你们中的一些人帮助我找到了答案.这是我发现的:

Thank you for all of the comments. Some of you helped to lead me to the answer. Here's what I found:

这是一个 NTFS 权限问题,而不是 SQL 问题.此外,它看起来有点像错误(而且是可重复的).

It was an NTFS permission problem, and not a SQL problem. Further, it looks kind of bug-like (and it's repeatable).

问题:我使用的帐户对 mdf 和 ldf 文件具有完全控制的 NTFS 权限.但是,它通过组成员身份获得了这些权限(本地管理员组具有权限,我的帐户是本地管理员的成员).(我验证了权限)

The problem: The account that I was using had full control NTFS permissions to the mdf and ldf files. However, it had those permissions through group membership (the Local Administrators group had permissions, and my account is a member of local admins). (I verified the permissions)

如果我尝试进行附加,以我的身份连接到 SQL Server(我在管理员组中),它会因 NTFS 问题而失败.

If I try to do the attach, connect to SQL Server as me (where I am in the admins group), it fails with the NTFS problem.

但是,如果我将本地管理员组具有的相同文件权限直接授予我的域帐户,那么我可以毫无问题地附加.

However, if I grant the same file permissions that the local admin group has directly to my Domain Account, then I can attach with no problems.

(哦,是的,我检查了这台机器上的本地组,并确认我的域帐户确实是本地管理员组的成员).

(oh, and yes, I checked the local groups on this machine, and I verified that my domain account is indeed a member of the local admins group).

因此,看起来错误的发生是因为某些代码(在 SQL Server 或 Management Studio 中)检查用户帐户拥有的权限,但它并没有检查用户的组权限帐户继承.

So, it looks as though the error occurs because some code (either in SQL Server or Management Studio) checks for the permissions that the user account holds, but it doesn't go so far as to check group permissions that the user account inherits.

这对我来说听起来很奇怪,但我可以一遍又一遍地重现它,所以我得出结论,这就是答案.

That sounds weird to me, but I can reproduce it over and over again, so I have concluded that it is the answer.

更新:我将此报告为错误:https://connect.microsoft.com/SQLServer/feedback/details/539703/access-denied-attaching-a-database-when-permissions-are-继承

这篇关于附加数据库时访问被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
SSIS: Model design issue causing duplications - can two fact tables be connected?(SSIS:模型设计问题导致重复-两个事实表可以连接吗?)
SQL Server Graph Database - shortest path using multiple edge types(SQL Server图形数据库-使用多种边类型的最短路径)
Invalid column name when using EF Core filtered includes(使用EF核心过滤包括时无效的列名)
How should make faster SQL Server filtering procedure with many parameters(如何让多参数的SQL Server过滤程序更快)
How can I generate an entity–relationship (ER) diagram of a database using Microsoft SQL Server Management Studio?(如何使用Microsoft SQL Server Management Studio生成数据库的实体关系(ER)图?)