1. MSSQL 执行遭遇系统错误5
在MSSQL的运行中,可能会执行出现系统错误5的问题,这种情况表示访问被拒绝。排查这个问题,一般要从以下几个方面入手:
1.1 确认运行账户
首先要确认正在运行的MSSQL服务的账户是什么。可以通过以下步骤来查看服务的运行账户:
select servicename, serviceaccount from sys.dm_server_services
如果确认正是运行账户的权限不足导致了访问被拒绝,可以尝试将该账户在MSDN上授予相应的权限。
1.2 确认访问路径的权限
其次要确认是否有访问路径的权限。通常情况下,MSSQL在执行时可能需要访问某个文件或路径,如果没有相应的权限,也会导致系统错误5。可以通过以下步骤来确认访问路径的权限:
EXEC xp_fileexist '文件路径'
如果返回结果为0,则表示没有访问权限;如果返回结果为1,则表示有访问权限。
1.3 确认服务安全储存区的权限
最后要确认服务安全储存区的权限。MSSQL在执行时可能需要访问某些系统级对象,如果没有相应的权限,也会导致系统错误5。可以通过以下步骤来确认服务安全储存区的权限:
use master
grant view server state to '账户名'
go
这个命令将账户添加进了服务器的固定数据库角色view server state中,赋予了其查看服务器状态的权限。
2. 手把手帮忙解决
基于以上三个方向,我们可以尝试逐一解决MSSQL执行时系统错误5的问题。下面是具体的解决方法:
2.1 解决运行账户的权限不足问题
如果运行账户的权限不足,可以参考以下步骤解决:
(1)登录MSDN
(2)点击左上角的“管理”菜单,选择“SQL Server”
(3)点击“安全->登录名”,找到运行账户名
(4)右键点击该账户,选择“属性”
(5)在“用户映射”中,选择需要授予权限的数据库,勾选相关权限,确定即可。
2.2 解决访问路径的权限问题
如果访问路径的权限不足,可以参考以下步骤解决:
(1)打开“资源管理器”,找到想要授权的文件夹
(2)右键点击该文件夹,选择“属性”
(3)进入“安全”选项卡,点击“编辑”
(4)在“所有者”中选择合适的账户,点击“替换所有者”
(5)在“组或用户名称”中添加授权的账户名,并分配相应的权限
2.3 解决服务安全储存区的权限问题
如果服务安全储存区的权限不足,可以参考以下步骤解决:
(1)在MSSQL服务所在的机器上以管理员身份登录
(2)打开“SQL Server Management Studio”
(3)选择“master”数据库
(4)在“master”数据库上右键点击,选择“新建查询”
(5)在查询窗口中,输入以下命令并执行:
grant view server state to '账户名'
go
其中,“账户名”就是想要赋予权限的账户名。
3. 总结
通过以上的操作,我们就可以成功解决MSSQL执行时遇到系统错误5的问题。不过,如果我们不对MSSQL的启动参数进行更改的话,这个问题还是可能会出现。因此,为了减少这个问题的出现,我们应该在启动MSSQL时将参数加上。具体操作可以参考:
sqlservr.exe -c -f -T4022
这样就可以排除大部分系统错误5的问题。