SQL Server 安全篇——服务账号安全性(2)——SQL Server服务

186 篇文章 6 订阅
65 篇文章 0 订阅

本文属于SQL Server安全专题系列


 在安装SQL Server时,很重要的一步就是选择所需的服务,由于每个服务必须有一个服务帐号,所以也就需要帐号的选择和配置,应该坚持最小所需权限原则。最小所需权限原则应该针对日常运行所需来制定,如果偶发性的需求,可以临时提权但是记住要用完后马上降权。
 下表列出了常规服务帐号的基本所需权限,当然只是“基本”的,如果需要进行额外操作,也可以适当搭配。

服务用户权限分配文件及文件夹权限
数据库引擎
  • 以服务身份登录
  • 替换进程级别标记(token)
  • 跳过遍历检查
  • 调整进程内存配额
  • 启动SQL Writer
  • 读取事件日志服务
  • 读取RPC服务

Instid\MSSQL\backup

完全控制

Instid\MSSQL\binn

读取和执行

Instid\MSSQL\data

完全控制

Instid\MSSQL\FTData

完全控制

Instid\MSSQL\Install

读取和执行

Instid\MSSQL\Log

完全控制

Instid\MSSQL\Repldata

完全控制

130\shared

读取和执行

Instid\MSSQL\Template Data(仅限 SQL Server Express)

读取


SQL Agent
    • 以服务身份登录
    • 替换进程级别标记(token)
    • 跳过遍历检查
    • 调整进程内存配额

    Instid\MSSQL\binn

    完全控制

    Instid\MSSQL\binn

    完全控制

    Instid\MSSQL\Log

    读取、写入、删除和执行

    130\com

    读取和执行

    130\shared

    读取和执行

    130\shared\Errordumps

    读取和写入

    ServerName\EventLog

    完全控制


    SSAS
    • 以服务身份登录
    • 增加进程工作集(仅适用于表格)
    • 调整进程内存配额(仅适用于表格)
    • 锁定内存页(仅适用于表格)
    • 提高计划优先级(仅适用于表格)

    130\shared\ASConfig

    完全控制

    Instid\OLAP

    读取和执行

    Instid\Olap\Data

    完全控制

    Instid\Olap\Log

    读取和写入

    Instid\OLAP\Backup

    读取和写入

    Instid\OLAP\Temp

    读取和写入

    130\shared\Errordumps

    读取和写入


    SSRS以服务身份登录

    Instid\Reporting Services\Log Files

    读取、写入、删除

    Instid\Reporting Services\ReportServer

    读取和执行

    Instid\Reportingservices\Reportserver\global.asax

    完全控制

    Instid\Reportingservices\Reportserver\Reportserver.config

    读取

    Instid\Reporting Services\reportManager

    读取和执行

    Instid\Reporting Services\RSTempfiles

    读取、写入、执行、删除

    130\shared

    读取和执行

    130\shared\Errordumps

    读取和写入


    SSIS
    • 以服务身份登录
    • 跳过遍历检查
    • 身份验证后模拟客户端
     
    Full-Text
    • 以服务身份登录
    • 调整进程的内存配额
    • 跳过遍历检查
     
    SQL Browser以服务身份登录

    130\shared\ASConfig

    读取

    130\shared

    读取和执行

    130\shared\Errordumps

    读取和写入


    SQL Server Distributed Replay 控制器以服务身份登录

    <ToolsDir>\DReplayController\Log\(空目录)

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayController\DReplayController.exe

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayController\resources\

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayController\{all dlls}

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayController\DReplayController.config

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayController\IRTemplate.tdf

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayController\IRDefinition.xml

    读取、执行和列出文件夹内容


    SQL Server Distributed Replay 客户端以服务身份登录

    <ToolsDir>\DReplayClient\Log\

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayClient\DReplayClient.exe

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayClient\resources\

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayClient\ (all dlls)

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayClient\DReplayClient.config

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayClient\IRTemplate.tdf

    读取、执行和列出文件夹内容

    <ToolsDir>\DReplayClient\IRDefinition.xml

    读取、执行和列出文件夹内容


    PolyBase 引擎和 DMS以服务身份登录 
    R 服务:SQLRUserGroup允许在本地登录 


     绝大部分情况下都建议使用SQL Server配置管理器进行配置,但是如果同时装了多版本的SQL Server,可能不方便查找配置管理器,下面列出常见的配置管理器路径以供备用:


    SQL Server版本配置管理器路径
    SQL Server 2016C:\Windows\SysWOW64\SQLServerManager13.msc
    SQL Server 2014C:\Windows\SysWOW64\SQLServerManager12.msc
    SQL Server 2012C:\Windows\SysWOW64\SQLServerManager11.msc
    SQL Server 2008C:\Windows\SysWOW64\SQLServerManager10.msc
     又到了大家最喜欢的最佳实践,不过我不是非常喜欢,因为在面向搜索引擎编程及快餐文化盛行的今天,由于缺乏对问题的思考,大部分人把最佳实践当作唯一方式来全盘照抄,从我用词上面大家应该懂得。不喜欢归不喜欢,还是有必要列一下:

    何时使用域帐号:


    1. 需要和其他网络中的服务器、服务或资源交互
    2. 使用Linked server(链接服务器)访问网络中的服务器
    则可以使用低权限的域用户来运行SQL 引擎服务。但是Windows域管理员应该对其进行严格管控。


    何时使用NETWORK SERVICE帐号:

     别想了。这个帐号也会被本机运行其他服务,只是比本地用户组具有更多的网络资源访问权限。用这个帐号来运行SQL 服务,需要用证书来访问网络资源。麻烦。


    何时使用LOCAL USER帐号:

    1. 不需要跟网络中的其他服务器、服务或资源交互,可以使用低权限本地用户帐号来运行。
    注意:不建议使用具有管理特权的本地用户运行SQL Server服务,对于即时文件初始化功能,可以额外授权。


    何时使用LOCAL SYSTEM帐号:


    最好不要,因为它的权限过大。


    总结:


     如果环境在域中,优先选择域帐号作为服务帐号,并且配置低权限,不够才提权,如果是完全独立的服务器,在保证外围安全的前提下,使用LOCAL User,要是想省事,用LOCAL SYSTEM也不是不可以。
     但是,又要保证SQL Server对数据、日志和备份目录具有完全控制权限。







    • 0
      点赞
    • 4
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值