我已卸载SQL Server 2019并安装了SQL Server 2022 Express。我的所有数据库都位于:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA
我的新位置是:
C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA
直接从旧位置附加数据库会导致:
无法打开物理文件"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\DBName.mdf"。操作系统错误5:5(访问被拒绝。)。
然后我将.mdf
文件复制到新位置,但尝试从新位置附加它时,我得到了类似的错误,但对于日志文件:
无法打开物理文件"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\数据库名称_日志. ldf"。操作系统错误5:5(访问被拒绝。)。
我无法将日志文件复制到新位置,因为我的硬盘上没有足够的空间。
你知道吗?
谢啦,谢啦
1条答案
按热度按时间osh3o9ms1#
操作系统错误5:5(访问被拒绝。)。
SQL Server使用NTFS ACL锁定数据文件夹。因此,您可以通过获取文件夹和文件的所有权并将完全控制权限授予其他SQL Server示例来解决此问题。
SQL Server禁用文件上的权限继承,因此您需要向其他SQL示例授予对每个文件的完全控制权。如果您使用Windows集成身份验证进行连接,则还需要向自己授予对文件的完全控制权。
在我的测试中,在将mdf和ldf的完全控制权授予"NT Service\MSSQLSERVER"和我的Windows用户之后,我能够运行
从默认示例。您还可以移动(而不是复制)文件,而不需要额外的空间。