一个由于文件权限问题导致的SQL Server 2008 无法正常启动的问题
项目中使用MS SQL Server 2008作为数据库服务器。操作系统为MS Windows Server 2008 R2,64位。
在服务器安装完成之后,就一直没有重启过机器,今天对数据库做了一些简单调整,主要是想要通过DAC连接到数据库,由于几次操作不成功,因此,想重启下服务器。
结果重启之后悲剧了,MSSQLSERVER直接无法启动。
查看系统日志,发现以下错误信息:
FCB::Open failed: 无法打开文件号 2 的文件 D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf。操作系统错误: 5(拒绝访问。)。竟然是拒绝访问,master数据库的ldf紧接着下一条是类似的内容,只不过是mater数据库的mdf文件。
这是咋回事呢?
看样子是文件权限的问题,SQL Server在创建完数据库以后,会使用一个名为“SQLServer*******”的文件用户,而在win2008下,此用户对于管理员的master.mdf与mastlog.ldf文件是只读权限,因此,在服务启动的时候,就会导致SQL Server无法正常启动。看样子SQL Server会对master数据库的一些内容进行写操作。
找到问题根源,解决就很简单,只需要把这两个文件的民为“SQLServer*******”的文件用户权限做一下调整,当然,这个调整是需要管理员权限。
再启动SQL Server,正常!