Feb 13

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

碟舞飞扬 , 21:16 , 服务器类 , 评论(0) , 引用(0) , 阅读(4829) , Via 本站原创 | |
虽然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
Tags:
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]