我有两个数据库。两者位于同一文件夹中。据我所知,两者都拥有完全相同的所有权和权限。我可以附加一个但不能附加另一个 - 我收到错误 5123。
对于这两个文件...
- 所有者是 MSSQLSERVER
权限条目:
-
MSSQLSERVER - 完全控制
-
所有者权利 - 完全控制
-
管理员 - 完全控制
我查看了下面引用的另一个问题,但鉴于上面列出的限制,我无法获得任何建议。我在下面发布了最终有效的内容。
将您的用户添加到权限:
[your user] - full control
MSSQLSERVER - Full control
OWNER RIGHTS - Full control
Administrators - Full control
操作系统平台上的所有文件都受访问权限的约束。请记住,为了获得最佳安全性,DENY 始终覆盖允许的任何权限。SQL Server 数据库具有物理文件(..MDF。NDF 和 .LDF( 这些文件就像服务器上的任何其他文件一样,受访问权限的约束。
在 SQL Server 错误 5123 的情况下,您正在尝试将数据库文件附加到您的凭据对该文件没有适当权限的实例。不过,这里的诀窍是,最初分离数据库文件的人会自动设置为所有者,而不是其他人。
为了解决此问题,您必须向尝试附加文件的帐户授予R/W或完全控制权限。注: 如果数据库有多个文件(很可能是(,则需要确保为执行 ATTACH 的用户正确设置了每个文件安全属性。
您还可以阅读此博客以获取更多详细信息:https://www.stellarinfo.com/blog/sql-server-2008-r2-database-error-5123/
我仍然不确定发生了什么,但我在没有以管理员身份运行 SSMS 的情况下让它工作。 早些时候,当我将所有权从 MSSQLSERVER 更改为我的配置文件时,我遇到了同样的错误。然后我注意到,在"属性"对话框的"安全"选项卡中,当我在"组或用户名"部分中选择"所有者权限"时,列出的"允许"和"拒绝"权限均为空。我一直在单击"高级",从该视图中,"所有者权限"已检查所有权限。这次我单击了"编辑",看到所有复选框都没有设置,所以我将所有复选框设置为"允许"。这奏效了。我不擅长Windows安全,所以我不知道发生了什么,但我又回到了业务中。而且我仍然不明白为什么当所有数据库都归 MSSQLSERVER 所有时,一个数据库确实附加了,而另外两个数据库却没有,尽管它们似乎具有相同的权限集。
使用管理员权限打开管理工作室(右键单击,以管理员身份运行(,然后重试,就我而言,我能够解决问题。
请注意,您看到的数据文件扩展名取决于您的服务器版本。 选择文件"*"以查看该位置中的所有现有文件,然后选择要附加的数据文件。