为什么我无法在Windows身份验证模式下使用SQL Express从桌面上读取.BAK文件

时间:2008-10-28 06:54:46

标签: sql-server windows-authentication

我正在尝试在SQL Express中恢复.BAK文件之前执行此SQL查询。最初,我在我的用户帐户的桌面上有该文件。我以管理员身份登录。

当我尝试像这样访问桌面上的.BAK文件时

RESTORE FILELISTONLY FROM DISK= 'C:\Documents and Settings\Administrator\Desktop\file.bak'

我收到错误。

Msg 3201, Level 16, State 2, Line 1
Cannot open backup device 'C:\Documents and Settings\Administrator\Desktop\file.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 1
RESTORE FILELIST is terminating abnormally.

但是,当我将.BAK文件移动到C:\temp时,执行此

RESTORE FILELISTONLY FROM DISK= 'C:\temp\file.bak'

它运作得很好。

我无法弄清楚发生了什么。有没有办法使用带有SQL Express的Windows身份验证访问桌面上的文件?

3 个答案:

答案 0 :(得分:6)

尝试将用户 LOCAL SERVICE 的读取权限授予策略编辑器中的文件夹C:\ Documents and Settings \ Administrator \ Desktop \(右键单击文件夹,然后在“安全”选项卡中,单击“添加...然后高级... |立即查找

答案 1 :(得分:0)

当您运行还原脚本时,它正在运行SQL Express的服务帐户的上下文中执行。转到服务管理控制台(或运行Services.msc)并查找SQL Express服务并查看其配置为在其下运行的帐户,然后查看桌面上文件的权限并确保该帐户具有读访问权限

答案 2 :(得分:0)

在SQL Server 2008R2 SP1之后,您无需转到服务管理控制台(或运行Services.msc)来查找运行sql server服务的帐户。

只需使用以下代码:

select * from
sys.dm_server_services

SELECT  DSS.servicename,
        DSS.startup_type_desc,
        DSS.status_desc,
        DSS.last_startup_time,
        DSS.service_account,
        DSS.is_clustered,
        DSS.cluster_nodename,
        DSS.filename,
        DSS.startup_type,
        DSS.status,
        DSS.process_id
FROM    sys.dm_server_services AS DSS;