通过rClone挂载的S3驱动器未在SQL Server Management Studio中显示
解决rClone挂载S3驱动器作为SQL Server恢复源的问题
核心问题根源
rClone默认以当前登录用户的上下文挂载S3驱动器,SQL Server服务(运行在NT Service\MSSQLSERVER账户下)无法访问其他用户上下文的虚拟挂载点;同时虚拟驱动器不支持常规NTFS权限设置,导致手动添加的权限会直接失效。
解决方案步骤
1. 重新配置rClone挂载,让SQL Server服务账户能访问
方法一:以SQL Server服务账户身份挂载S3
- 打开任务计划程序,创建新基本任务:
- 触发器设为「启动时」,确保开机自动挂载
- 操作选「启动程序」,程序路径填rClone完整路径(例:
C:\rclone\rclone.exe) - 添加参数:
mount s3:你的存储桶名 X: --vfs-cache-mode writes --allow-non-empty(X:替换为你的驱动器号,--vfs-cache-mode writes用于适配SQL恢复的写入缓存需求) - 「常规」选项卡勾选「不管用户是否登录都要运行」,并选择「使用最高权限运行」
- 切换到「用户账户」选项卡,点击「更改用户或组」,输入
NT Service\MSSQLSERVER,验证名称无误后确定 - 完成任务创建,手动运行一次,确认驱动器挂载成功
方法二:修改rClone挂载参数,允许所有用户访问
若不想用任务计划,可通过参数开放访问(需先配置WinFsp):
- 打开WinFsp控制面板(rClone安装时通常附带),切换到「服务」选项卡,勾选「允许非管理员用户访问文件系统」并应用
- 重新执行挂载命令:
rclone mount s3:你的存储桶名 X: --vfs-cache-mode writes --allow-other --allow-non-empty
2. 验证SQL Server访问权限
- 打开SSMS,执行以下T-SQL测试挂载驱动器的访问权限:
-- 若xp_cmdshell未启用,先执行以下语句开启 sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure 'xp_cmdshell', 1; RECONFIGURE; -- 测试驱动器访问 EXEC xp_cmdshell 'DIR X:\'
- 若能列出文件,说明权限配置成功,可直接在恢复数据库时选择该驱动器的备份文件
3. 替代方案:直接通过S3 URL恢复(无需挂载)
如果挂载方案仍有问题,SQL Server 2022及以上版本支持直接读取S3兼容存储的备份文件:
- 先配置S3访问凭据:
CREATE CREDENTIAL [s3://你的存储桶名] WITH IDENTITY = 'S3 Access Key', SECRET = '你的AccessKeyID:你的SecretAccessKey';
- 执行恢复命令:
RESTORE DATABASE 你的数据库名 FROM URL = 's3://你的存储桶名/备份文件路径.bak' WITH MOVE '数据文件逻辑名' TO '本地磁盘路径\你的数据库名.mdf', MOVE '日志文件逻辑名' TO '本地磁盘路径\你的数据库名.ldf', REPLACE, STATS = 10;
内容的提问来源于stack exchange,提问作者C Cost
相关产品推荐
相关产品推荐

