将管道从 Windows-2019 切换到 Windows-2022 后,本地 Db "read-only"错误



为了运行一些测试,我们的管道将一些SQL Server.mdf文件挂载为localdb。

将管道从windows-2019切换到windows-2022后,我们要求DB的测试生成以下错误:

数据库'xxxxxxxxxxx'无法升级,原因是只读、包含只读文件或用户没有权限修改部分文件。处理步骤使数据库或文件可写,并重新运行恢复

.mdf文件不是只读数据库,可以在本地挂载。

我已经尝试递归地关闭目录上的只读标志,以防2022版本的Windows使用不同的默认值设置构建目录,这没有帮助。对于为什么会发生这种情况/修复有什么建议吗?

Azure DevOps Pipeline通过服务帐户访问文件,我们应该检查服务帐户权限,并确保它有足够的权限。

如果您使用的是MS托管代理,它通过这个帐户test Build Service(Org name)访问文件,我们需要打开项目设置->Repositories->选择repo并检查服务帐户test Build Service ({Org name})权限,同时检查Pipeline-> settings

如果您正在使用自托管代理并访问本地文件,则应该检查文件权限。只要确保服务帐户对文件具有可写权限即可。

选择本地文件->Properties->Security,服务帐户名称应为Administrators(代理服务名称Administrators)或Users(代理服务名称授予正确权限的用户)。

请尝试将.mdf的文件权限设置为BUILTINUsers或服务帐户可写。

最新更新