以SQL Server为例论数据库安全机制的构建

2018-06-26 11:56高见斌
山东工业技术 2018年10期
关键词:安全机制数据库构建

摘 要:数据库安全是信息安全的重要组成部分。文章从操作系统运行和数据库运行两方面阐述了安全机制的构建。数据库安全措施主要有用户身份管理、权限管理、架构和数据加密。

关键词:数据库;安全机制;构建

DOI:10.16640/j.cnki.37-1222/t.2018.10.136

众所周知,当今社会是信息时代,各行各业都不开信息管理,那么信息安全就显得尤其重要。国际标准化组织(ISO)将信息安全定义为:为数据处理系统建立和采取的技术与管理方面的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因而遭到破坏、更改和泄露。

数据库是整个计算机信息系统的重要组成部分,计算机信息系统安全自然包括数据库信息安全。保护数据库安全措施是否得力,是评价数据库系统优劣的主要性能参数之一。数据库安全是指库中的数据不能被非法用户使用,对合法用户未经授权的数据也不能被访问,避免数据泄露、更改或删除。

在實用的信息系统中,安全管理的核心思想是用户身份识别、权限管理和数据加密。

用户身份识别是所有安全系统都要解决的问题,其目的是阻止非法用户进入系统内部。在计算机系统中,首先由操作系统实施,以识别是否为计算机的合法用户。其次,对于计算机的合法用户,还要确认其是否为数据库系统的合法用户。

DBMS的访问控制机制实现权限的授予与管理,是数据库安全系统中的核心技术。从两个方面实现访问控制机制:一是定义权限,权限是指用户所拥有的对数据对象可以进行的操作集合。二是检查权限,权限检查是指检查是否允许主体对客体的访问。为了确保数据库系统安全,采取最小特权原则来进行访问控制,这就是应用程序或用户只拥有完成指定任务的最小权限范围,对于超出执行任务以外所要求的权限,系统拒绝提供。

为了有效保护信息安全,从两个层面上构建信息安全机制:

1 操作系统运行安全措施

操作系统运行安全是信息安全的基础。为了防止电脑中毒,为了不让黑客等不法分子通过网络等途径攻击电脑,使系统无法正常工作或瘫痪,必须采取以预防为主的策略。具体措施为:使用正版系统软件,使用正版防护软件对系统进行漏洞修补和及时更新,使用正版杀素软件并定期升级更新,对来历不明的软件慎用,对系统备份保存。

2 数据库运行安全措施

用户通过客户端访问SQL Server数据库的安全管理操作过程为:创建登录账户及授权,用户访问服务器和数据库。在SQL Server 中,针对有关安全性问题,可以采取如下措施。

2.1 用户身份管理

登录SQL Server服务器,需要身份验证。身份验证方式有两种:SQL Server身份验证和Windows身份验证或是它们的混合方式验证。

登录账户是指能够访问SQL Server的账户。假设预先没有建立合法的登录账户,用户就不能与SQL Server 服务器相关联,也就不能访问SQL Server。登录账户可以是系统内置登录账户,可以是用命令行创建的登录账户,也可以是通过数据管理平台交互式创建的登录账户。

通过登录账号连接到SQL Server服务器的用户,但若不被授权,登录将不能管理服务器或进行任何操作。SQL Server服务器使用角色(Role)进行权限管理。SQL Server将服务器的权限进行了划分,设置了9个固定角色,除public角色外,其他每个角色都是事先规定的权限的集合,不可更改和删除。角色可以是固定服务器角色,可以是用Transact-SQL语句创建的服务器角色。

一个登录帐户只能对应一个数据库用户。数据库用户是数据库的主体,是对数据库进行操作的执行者。一般来说,一个登录账户只有成为某个数据库的用户,才能够对数据库进行操作。同时,一个登录账户可以映射为多个数据库中的用户。

创建用户、修改用户、查看用户信息、删除用户是数据库用户管理的主要内容。

一旦一个登录账户创建一个数据库后,会自动生成几个用户。在对象资源管理器中展开数据库“安全性”/“用户”节点,可以看到自动生成的用户。自动生成的用户不能删除。在Sqlserver数据库管理平台向导中,可以Transact-SQL语句或可视交互方式创建数据库用户。需要注意的是,在用CREATE USER语句创建用户时,需要指定登录名,这是因为每个数据库对应一个登录名。

修改用户包括重命名用户名和修改用户的默认架构两个方面。修改用户可以用ALTER USER语句。

登录到Sqlserver服务器,打开系统数据库,打开master数据库,打开视图,打开系统视图,打开sys.Database_principals视图。该视图包含有创建日期、用户名、类型、principal_id、默认架构、是否固定角色、修改日期等信息。

如果不允许一个数据库用户使用数据库,但不删除,可使用DENY CONNECT TO语句禁用,禁用后对应登录就不能以该用户身份访问数据库了。要使已禁用的用户重新可用,使用GRANT CONNECT TO语句激活用户。

彻底不再使用的用户应将其删除。从当前数据库中删除一个用户,就是删除一个登录账户在当前数据库中的映射,该登录将不能以原数据库用户名访问数据库。但若数据库的guest用户是激活的,则该登录能够以guest用户名访问数据库。也可以交互方式删除用户。在SSMS中选中用户名,单击右键,在快捷菜单中选择“删除”项单击,即可删除用户。需要注意的是不能直接删除拥有架构的用户。

数据库角色是指具有相同权限的一组用户,它分为用户定义的数据库角色和固定数据库角色两大类。用户可以创建角色、给角色授权或撤销授权、给角色添加成员、删除角色成员、删除角色等。

在SSMS中,可以通过交互方式添加或刪除数据库角色的成员。在对象资源管理器中,选中数据库角色名,单击右键,在快捷菜单中选中“属性”项单击,弹出数据库角色的属性窗口,在窗口中执行相应的添加或删除操作即可。

2.2 权限管理

从安全角度考虑,除了必须是合法用户可以访问数据库外,还对不同用户规定了不同权限。权限就是规定用户对指定对象可以做什么,不能做什么。只有拥有了指定的权限,才能对该对象执行相应的操作。从权限设置角度看,用户权限可以分为以下三类:(1)操作服务器的权限。(2)访问指定数据库的权限。(3)在指定数据库上对特定对象执行特定行为的权限。

权限管理包括授予权限、收回权限和拒绝权限。授予(GRANT)权限,即允许指定安全主体在指定安全对象上获得给定的权限,以便可以执行某种操作或某个语句。收回(REVOKE)权限,就是撤消用户在指定安全对象上获得的权限,或者收回曾经授予的某种权限,这与授予权限正好相反。拒绝(DENY)访问权限。即拒绝指定的安全主体在指定安全对象上拥有指明的权限。即使主体被授予这种权限,

或者由于继承而获得这种权限,仍然不允许这些权限生效。权限管理方式有:使用Transact-SQL语句管理权限,使用交互方式管理权限。

2.3 架构

通俗地讲架构就是一个组,里面可以存放表、视图、存储过程等等,也可以把架构看成是对象的容器。架构是用来进行权限控制的,可以用交互方式或Transact-SQL语句创建。

修改架构是指将特定架构中的对象转移到其他架构中。修改架构转移对象并不会改动对象本身。需要注意的是,当把对象转移到新架构时,与该对象关联的所有权限都自动消除。这是因为对象的权限是与所属的架构紧密相关的。

从某个架构中转移对象,一般不会影响所转移对象的定义,如生产商表与其他表的外键关系,但是会对某些对象有影响,例如,如果将原表之间的关系保存为关系图,那么架构的转换会是关系图存放的信息发生变化,影响到关系图的内容。

登录到Sqlserver服务器,打开系统数据库,打开master数据库,打开视图,打开系统视图,打开sys.schemas视图。该视图包含架构名称、架构ID等祥细信息。假如某个架构没什么用途了,使用DROP SCHEMA语句删除它。删除架构需要注意的是,只有当架构中不包含有任何对象时,才可以被删除,否则删除操作失败。

2.4 数据加密存储

在数据库安全管理中,数据加密是保护重要数据的最后一道安全屏障。加密是通过特定的算法对数据进行处理的一种手段,通常的做法是将原始数据与称为密钥的值相混合,经过若干数学公式处理后,使原始数据转变为不可读形式,从而实现了加密。数据接收方需要使用相反的数学过程以及正确的密钥将数据解密,从而得到原始数据,这过程称之为解密。只有经过授权的人员才能访问和读取和原始数据。据此数据加密帮助提供数据的保密性。

根据加密密钥和解密密钥是否相同,通常将加密分为对称加密和非对称加密两种类型。

对称加密指的是给数据加密和解密时用的是相同的密钥。消息发送方需要加密大量数据时,可以使用这种加密方法,原因是对称加密速度快。

非对称加密指的是给数据加密和解密时用的是不相同的密钥。相对对称加密而言,非对称加密安全性显然更好。非对称加密的不足之处是加密和解密速度慢时间长,只适合对少量数据进行加密。

参考文献:

[1]周慧.数据库应用技术——SQL server 2008[M].北京:人民邮电出版社,2013.

作者简介:高见斌(1966-),男,湖北荆州人,本科,副教授,主要研究方向:计算机应用技术。

猜你喜欢
安全机制数据库构建
数据库
关于税收应用中的数据库安全机制浅析
Domino安全策略研究
铁路信号设备维护与安全机制分析
论10kV配电线路接地故障分析及预防
环境生态类专业大学生创新创业能力培养体系的构建与实践
构建游戏课堂加强体育快乐教学的探究
共情教学模式在科学课堂的构建与实施研究
数据库
数据库