Sql server 附加数据库时发生SQL Server错误5123

Sql server 附加数据库时发生SQL Server错误5123,sql-server,windows-security,Sql Server,Windows Security,我有两个数据库。两者都在同一个文件夹中。据我所知,两者拥有完全相同的所有权和权限。我可以附加一个,但不能附加另一个-我得到一个错误5123 对于这两个文件 所有者是MSSQLSERVER 权限条目: MSSQLSERVER-完全控制 所有者权利-完全控制 管理员-完全控制 我回顾了下面提到的另一个问题,但由于上面列出的限制,我无法得到任何可行的建议。我在下面发布了最终有效的内容。我仍然不确定到底发生了什么,但我在没有以管理员身份运行SSMS的情况下使其有效。早些时候,当我将所有权从MSS

我有两个数据库。两者都在同一个文件夹中。据我所知,两者拥有完全相同的所有权和权限。我可以附加一个,但不能附加另一个-我得到一个错误5123

对于这两个文件

  • 所有者是MSSQLSERVER
权限条目:

  • MSSQLSERVER-完全控制

  • 所有者权利-完全控制

  • 管理员-完全控制


我回顾了下面提到的另一个问题,但由于上面列出的限制,我无法得到任何可行的建议。我在下面发布了最终有效的内容。

我仍然不确定到底发生了什么,但我在没有以管理员身份运行SSMS的情况下使其有效。早些时候,当我将所有权从MSSQLSERVER更改为我的个人资料时,我遇到了相同的错误。然后我注意到,在“属性”对话框的“安全”选项卡中,当我在“组或用户名”部分选择“所有者权限”时,列出的“允许”和“拒绝”权限均为空。我一直在单击“高级”,从该视图中,所有者权限检查了所有权限。这一次,我单击了“编辑”,看到所有复选框都没有设置,所以我将所有复选框都设置为“允许”。成功了。我不擅长Windows安全,所以我不知道发生了什么,但我已经回到了工作岗位。我仍然不明白,当所有数据库都归MSSQLSERVER所有时,为什么一个数据库没有连接,而另外两个数据库没有连接,尽管它们似乎拥有相同的权限集。

操作系统平台上的所有文件都有访问权限。请记住,为了获得最佳安全性,拒绝总是覆盖任何允许的权限。SQL Server数据库具有物理文件(.MDF、.NDF和.LDF)。这些文件与服务器上的任何其他文件一样,具有访问权限

在SQL Server错误5123的场景中,您正试图将数据库文件附加到您的凭据对该文件没有正确权限的实例。不过,这里的技巧是,最初分离数据库文件的人将自动设置为所有者,而不是其他人

为了解决这个问题,您必须为试图附加文件的帐户授予R/W或完全控制权。注意:如果数据库中有多个文件,那么您需要确保为执行附加的用户正确设置了每个文件的安全属性


您还可以阅读此博客以了解更多详细信息:

将您的用户添加到权限:

[your user] - full control  

MSSQLSERVER - Full control

OWNER RIGHTS - Full control

Administrators - Full control

打开具有管理员权限的Management Studio(右键单击,以管理员身份运行),然后重试。在我的情况下,我已能够解决此问题。

我不想更改所有者或以管理员模式运行SSMS。我想了解为什么可以连接一个DB而不能连接另一个。1523消息中报告的操作系统错误是什么?您是否将数据库和日志文件上的ACL与CACL进行了比较。例如
PS C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\data>cacls。\mydb.mdf
CREATE FILE在尝试打开或创建物理文件“…Dababase.mdf”时遇到操作系统错误5(访问被拒绝)。(Microsoft SQL Server,错误:5123)我不知道什么是ACL,也没有安装“PS”-即,输入上述命令会导致“'PS'无法识别为内部或外部命令、可操作程序或批处理文件”。如果我将所有者更改为我的配置文件,我可以附加它。但这并不能帮助我理解当前的问题是什么。另一个数据库的所有者是MSSQLSERVER,它的连接没有问题。这里的第一行很可能是问题中的实际问题。