一、前言
只要是信息系统,就需要运行所必需的系统环境,而Windows和Linux系统是现在使用最为广泛的主机操作系统,前边我们已经讲了等保测评2.0主机系统方面的测评项要求,大家有兴趣的可以翻阅我之前的文章。
而信息系统只要运行,就会产生数据,产生数据就需要存储,数据库就是另一个所有信息系统所必需的,数据是信息系统最重要的东西,所以数据库的安全就是保障数据安全的重要的屏障,现在市面上有许多数据库产品,其中使用比较广泛的就是SQLServer数据库,今天我们就来讲一讲等保测评2.0中对SQL Server数据库有哪些安全要求。
![1bbbd204e3e9f9a635b7013b19f59f8e.png](https://i-blog.csdnimg.cn/blog_migrate/bb0a20e23b6ebca66a17222fa60ac746.jpeg)
SQLServer数据库
二、测评项
a)应对登录的用户分配账户和权限;
b)应重命名或删除默认账户,修改默认账户的默认口令;
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在;
d)应授予管理用户所需的最小权限,实现管理用户的权限分离;
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级;
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。
三、测评项a
a)应对登录的用户分配账户和权限;
从字面意思看,对登陆的用户分配账户和权限,既然已经登陆了,自然就存在账户了,这里的意思是一开始就有几个待分配的账户,当有用户需要使用这些账户时,就分配给该用户,至于权限问题,就必须存在至少两个账户,且这两个账户的权限不一样,才有分配权限的必要性。
因此,该测评项就需要SQLServer中存在至少两个账户,且这两个账户的权限不一样。
四、测评项b
b)应重命名或删除默认账户,修改默认账户的默认口令;
SQL Server中的默认账户是sa账户,是在安装数据库时,初始化设置时设置的密码,sa账户是可以重命名或者删除的,至于默认口令,sa是不存在的,一般就是修改一下sa的名称。
![8c14226db97953a865cb3567361b11b4.png](https://i-blog.csdnimg.cn/blog_migrate/57e29d919cce4ef32ba94e663a6d942b.jpeg)
重命名sa
五、测评项c
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在;
对于多余的用户,我们可以查看数据库的登录名,一一询问管理员各个登陆名的用途,如果管理员答不上来,那这个账户就是多余账户;至于过期账户,SQL Server使用的是Windows中的策略,我在文章《一项一项教你测等保2.0——SQL Server身份鉴别》中提到了,大家可以自己查看。
![79d4d94b9e30958ffbb640efd738d50f.png](https://i-blog.csdnimg.cn/blog_migrate/3d2f788c948f6f832dd3ad2028f2b234.jpeg)
登录名列表
共享账户就是多人使用一个账户的情况,这个也只能通过访谈的方式检查,结果无法考证,所以是避免,在测评的过程中也存在一个人使用多个账户的情况,那么这就存在多余账户的可能,当然这也都无法查证。
六、测评项d
d)应授予管理用户所需的最小权限,实现管理用户的权限分离;
这一项首先说一下肯定不符合的情况,就是从始至终都是用sa账户登录,也就是从始至终都是最高权限操作,这种情况肯定是不符合的,但是在测评过程中这种情况不在少数。
数据库的权限划分跟业务多少有非常大的关系,一般是有多少业务就有多少数据库,有多少数据库就有多少用户管理,我们给数据库划分权限,也最好按照数据库来划分,至于如何查看数据库的权限,可以右击数据库属性查看数据库权限并选择用户或角色修改权限,如下图所示。
![a2fb61db83f78eee6393f90ee45f94f6.png](https://i-blog.csdnimg.cn/blog_migrate/64287ab42fdac3a3fee4011d4630e07e.jpeg)
数据库权限
七、测评项e
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
所谓授权主体,即只有某个账户或者某一类账户具有权限来设置其它账户的权限,可能拥有此类权限的账户为如下:
1.sa:默认账户,属于sysadmin角色,拥有服务器全部权限;
2.属于sysadmin角色的账户,拥有服务器全部权限;
3.数据库中属于db_owner角色的账户,拥有该数据库的全部权限;
4.某架构拥有者(用户或角色),可以设置该架构的权限;
5.db_securityadmin角色,为固定数据库角色,它的成员可以修改角色成员身份和管理权限。
6.直接被授予该权限的用户或角色。
这里就要看被测评方是否设置了这类角色了。
八、测评项f
f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级;
这一项要求就是对测评项d的进一步要求了,测评项d是针对数据库级别划分权限,至于这一项就完全不符合要求了,这一项要求是把访问控制的粒度限制在数据库表的级别,也就是说每个数据库也都需要两个以上的用户,且每个用户对数据库表访问权限都有所不同,至于如何查看数据库表的权限,可以右击数据库表属性查看数据库表权限并选择用户或角色修改权限,如下图所示。
![11980b7ae11f92936c5131459998d274.png](https://i-blog.csdnimg.cn/blog_migrate/87d742caf3d5725d26c1a5dc8950a10d.jpeg)
数据库表权限
九、测评项g
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。
这一项SQL Server本身并不具备这项功能,要想达到这一要求,就必须借助第三方软件了,这就需要根据被测评方所使用的的软件,具体问题具体分析了,只要符合测评项要求就可以了。
以上就是一项一项教你测等保2.0——SQL Server访问控制的所有内容,希望对大家有所帮助,欢迎关注@科技兴了解更多科技尤其是网络安全方面的资讯与知识。