你的位置:首页 > Windows

终于搞定SQL SERVER的低权限用户启动

2009-02-04 浏览:(3431) Windows 评论(0)

虽然MSSQL SERVER可以删除危险扩展存储来增强安全性,但是SQL的服务毕竟是以system权限启动的,这让人很不放心。

找方法一段时间了,但也一直没付诸实施;网上搜索,没有类似的经验可以参考,以前有用华众系统安全工具这样设置过,不过设置后无法启动,归根结底还是权限有问题。(MYSQL的低权限用户启动就比较简单)

今天总算搞定MSSQL SERVER服务的user组权限帐户启动(启动帐户不归到任何用户组也可以),主要是mssql的程序目录权限,数据库目录权限,注册表中有两个位置权限需要设置。

让人郁闷的是,加了相应目录和注册表权限后,下级的目录和注册表项竟然不会主动继承上面的权限,还要我强制添加子目录和注册表项的权限才行,主要在这上面花了不少时间。

本以为SQLAGENT和SQLSERVER权限应该一样,没想到设置低权限用户后,还是无法启动,system可以,看来还是有需要改权限的地方才能启动SQLAGENT。不过这个服务用的人也不多 

PS:sysinternals(现在应该算微软的了)的Process Monitor真是好东东,哈哈

1.发现C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqlboot.dll无法主动继承上级目录权限,需要手工添加权限

2.sql server启动需要有对c:\windows\system32\shell32.dll的读取权限

3.找到了SQL AGENT启动了以后又停止的原因,在企业管理器-安全性-登陆中增加sqladmin的system administrator权限,这样sql agent就能管理sql server了

sql agent无法启动可以在事件日志中看到以下信息:

SQLServerAgent could not be started (reason: 无法连接到服务器“(local)”; SQLServerAgent 无法启动).

相关链接:http://support.microsoft.com/default.aspx?scid=KB;en-us;q237604

需要添加的权限这里记录一下:

程序文件:
C:\Program Files\Microsoft SQL Server\MSSQL
这个文件的权限需要手动添加:
C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqlboot.dll
C:\Program Files\Microsoft SQL Server\80
包括子目录COM,Shared,Tools
数据库文件:
D:\Program Files\Microsoft SQL Server\MSSQL
包括子目录BACKUP,Data,FTDATA,JOBS,LOG,REPLDATA
直接用重置替换子目录的权限,有的目录和文件不会主动继承上层目录权限,需要强制覆盖权限
注册表:
这两项注册表项的子项有的权限都需要手动添加
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer

  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。