其实网上有很多相关的文章,为什么要低权限启动,还是为了服务器的安全,让SQL固定到一个没有任何组的用户中,安全的问题仅仅是相对的.
要想让SQLSERVER能够低权限启动,就是让他对启动需要的程序有一定的权限.主要集中在2个方面:
1.安装文件的程序文件所在目录.不是指默认在C盘program里的,而是在安装过程的安装路径.我一般安装在D:/MSSQL,尽量将目录的层数减少.SQL安装完成后有以下文件夹:/backup /binn /data /ftdata /install /jobs /repldata
/uggrade.首先给这些文件低权限帐户权限,一般来说出错都是在data和binn的问题上,他们的某些文件是不继承上一层权限的,binn中的 Binn/Resources/1033/sqlevn70.rll需要给他一定的权限,binn里面我只给到运行和读取权限.
然后就是DATA文件,这里面的问题权限尽量给高点,服务到最后启动的时候会调用到这里的数据库.特别注意的时候这里的数据库temp,经常一些朋友会遇到当服务启动到这个数据库时会报错,会说这个数据库不符合,后面的creat无法使用起,要解决这个问题,只要赋予你的盘,比如D盘的根目录一个低权限用户的读取权限就能解决,我想这是一个临时数据库,每次都会重建.MS的东西真的很奇怪.
2.搞定了文件夹的权限,下面就只有一个问题了,那就是注册表的权限,虽然是低权限帐户,但是MSSQL在注册表里有值,赋予低权限帐户这个注册表的权限才能启动.注册表位置:HKEY_LOCAL_MACHINE/ SOFTWARE /MICROSOFT/MSSQLSERVER只用给里面的子项MSSQLSERVER权限就能启动服务,最开始我是把所有MSSQL注册有关的地方给权限,后来才发现只有这个地方给权限就行了,权限到处给了也不利于安全,尽量把权限放到很少的部分,有问题再添加.
到此SQL就能够启动了.