昨天见有人无法备份(错误号: 3041), 查了资料:
1. DBCC CHECKDB()
2. 给文件夹everyone读写权限
3. backup database [DBName] to disk=N'd:\db_backup\DBName_20170731.bak'
with format,init,CONTINUE_AFTER_ERROR
都不行, 后来才发现因为启动账户的权限不足所致。
贴一下舒老师的贴子:
原文:点击打开链接
一、SQL Server 服务启动帐户
所有的核心SQL Server组件都以服务的形式运行。
可以使用以下几类帐户:
(1)Domain User,即域帐户
如果服务必须与网络服务进行交互,则访问类似于文件共享的域资源;如果服务使用到运行 SQL Server 的其他计算机的链接服务器连接,则可以使用具有最低特权的域帐户。许多服务器到服务器的活动只能使用域用户帐户来执行。此帐户应由域管理员在您的环境内预先创建。
(2)本地计算机的帐户
如果计算机不在域中,则建议您使用不具有 Windows 管理员权限的本地用户帐户。
(3)Local Service 帐户
Local Service 帐户是一个内置帐户,与 Users 组的成员具有相同级别的资源和对象访问权限。如果有个别服务或进程的安全性受到威胁,则此有限访问权限有助于保护系统的安全性。以 Local Service 帐户身份运行的服务将以一个没有凭据的 Null 会话形式访问网络资源。该帐户的实际名称为“NT AUTHORITY\LOCAL SERVICE”。
(4)Network Service 帐户
Network Service 帐户是一个内置帐户,比 Users 组的成员拥有更多的对资源和对象的访问权限。以 Network Service 帐户身份运行的服务将使用计算机帐户的凭据访问网络资源。该帐户的实际名称为“NT AUTHORITY\NETWORK SERVICE”。
(5)Local System 帐户
Local System 是一个具有高特权的内置帐户。它对本地系统拥有许多权限并作为网络上的计算机。该帐户的实际名称为“NT AUTHORITY\SYSTEM”。
二、修改服务启动帐户
使用 SQL Server 配置管理器(SSCM)可更改 SQL Server 服务的启动选项,以及更改由 SQL Server 数据库引擎、SQL Server Agent、SQL Server Browser、SQL Server Analysis Services 和 SQL Server Integration Services 使用的服务帐户。
更改数据库引擎和 SQL Server Agent 的服务启动帐户后,必须重新启动 SQL Server 服务(数据库引擎)才能使更改生效。重新启动此服务时,所有与 SQL Server 实例关联的数据库在此服务成功重新启动后才能使用。
注意:
请使用 SQL Server 工具(例如 SQL Server 配置管理器)来更改 SQL Server 或 SQL Server 代理服务使用的帐户,或更改帐户的密码。
除了更改帐户名以外,SQL Server 配置管理器还可以执行其他配置,例如在 Windows 注册表中设置权限,以使新的帐户可以读取 SQL Server 设置。其他工具(例如 Windows 服务控制管理器)可以更改帐户名,但不能更改关联的设置。如果服务不能访问注册表的 SQL Server 部分,该服务可能无法正确启动。
因此,即使在Windows操作系统的“服务”窗口可以修改SQL Server服务启动帐户,我们强烈不推荐。
建议用一个最小权限的专用帐户用来启动SQL Server。