基于SQL Server数据库安全机制研究
2020-04-22蔡长征曹士玲
蔡长征 曹士玲
摘要:SQLServer的安全性是指当服务器运行时,避免非法用户访问数据库、保证数据库中数据的安全。该文首先概述和分析SQL Server安全性和安全体系结构;然后介绍SQL Server支持的身份验证两种模式及其更换方式;接下来对服务器安全性管理和数据库安全性管理进行了讨论,包括创建登录账号、拒绝登录账号、删除账号以及数据库用户的基本操作等内 容;最后对SQL Server数据库权限管理及其种类进行了介绍。
关键词:SQL;Server;安全机制;数据库;权限
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)06-0001-02
SQL Server数据库具有较强的稳定性和可靠性,并且由于其便于操作,深受用户的喜爱,也是目前使用最广泛的企业数据库之一。由于数据库中存储着大量的数据,这些数据被大量的用户以共享的方式访问,因此保证这些数据的安全性非常重要。研究数据库的安全性也就是建立必要的安全保护措施,以保护数据库系统软件和其中的数据不因偶然或恶意原因而遭到破坏、更改和泄露。
数据库安全性内容主要包括三个方面,分别是数据信息的完整性、数据信息的保密性以及数据信息的可用性性。完整性主要包括物理完整性和逻辑完整性两部分,即数据不受硬件故障的影响,可以在遭受灾难性破坏时重建和恢复所有数据,同时确保数语义和操作的完整性。保密性是指禁止未授权的用户读取任何数据或通过推理方式从经过授权的数据获取未授权的数据,造成信息泄露。可用性是确保已授权用户对数据的正确操作,同时保证系统运行效率,并提供友好的人机界面。
1SQL Server的安全机制
为更好地保护数据,SQL Server的安全机制划分为四层,如图1所示。
第一层安全机制是访问操作系统的安全性。当用户访问SQL SERVER时,必须要先登录到服务器上。在登录时,用户输入合法的用户名和密码,并由操作系统进行验证,成功后才能继续其他的操作,否则被拒绝。由于第一层的安全机制一般同操作系统管理员或网络管理员管理,SQL Server的安全性有所提高,但同时增加了数据库管理系统的安全性和灵活性的难度。
第二层安全机制是访问SQL Server登录安全性。用户在登录时必须提供有效的用户名和密码。在登录SQL Server服务器成功后,根据用户不同的权限对数据库进行访问。
第三层安全机制是连接数据库的使用安全性。用户在登录SQL Server服务器后,连接用户事先指定的默认数据库,未指定的数据库不能访问,但系统提供的数据库除外。系统提供的数据库存储了大量系统信息,比如master数据库允许所有用户访问。
第四层安全机制是数据对象的使用安全性。数据库中的数据对象一般只允许数据库的拥有者访问。其他需要访问数据库对象的用户,需要数据库拥有者对其授予相应的访问权限。
2SQL Server支持的身份验证
SQL Server提供了两种身份认证模式:Windows身份认证模式和混合身份认证模式嘲。Windows身份验证模式只允许用户使用Windows系统账号连接数据库,适用于单位在一定范围内的数据库访问。用户在连接SQL Server服务器时,必须使用相同的账号登录Windows系统。由于Windows系统已对用户口令的有效性进行了验证,SQL Server不再重新验证。Windows身份验证使用一系列加密消息来验证SQL SERVER中的用户,加强数据库的安全,建议使用Windows身份验证。混合验证模式适用于不能登录Windows域或外界用户访问数据库。此种模式同时支持SQL Server用户验证模式和Windows身份验证模式,为开发人员提供了更多的选择方式。
用户在初始安装或登录SQL Server服务器时,需要指定验证模式。若要更改已指定的验证模式,需要使用安装SQL Serv-er服务器时预设的Windows账号或sa账号进行更改。更改验证模式的方法是:登录SQL Server Management Studio,依次选择服务器的“性属”中的“安全性”选项,更改验证模式。如果在安装SQL Server过程中选择的是"Windows身份验证模式”,安装程序会禁用sa账号。禁用sa账号需要启用后才能使用。启用sa账号的方法是:在SQL Server服务器的“对象资源管理器”中,展开“安全性”,依次展开“登录名”,右键单击登录名中的“sa”,选择“属性”命令中的“状态”选项,在右面的登录处选择“启用”,最后选择“确定”。修改完成后的模式需要重启SQL Server服务后生效。
3服务器的安全性管理
SQL Server账号分为服务器账号和数据库账号两种:服务器账号负责连接SQL Server服务器,数据库账号负责数据库的访问安全性访问验证。这里介绍登录账号的一些基本操作,包括创建登录账号、删除登录账号和拒绝登录账号等。
3.1服务器登录账号管理
安装SQL Server时,系统默认创建sa账号在混合登录验证模式中使用,Windows登录账号在两种模式下都可以进行登录。Windows账号创建的方法是:打开“控制面板”,再依次双击“管理工具”图标,“计算机管理”图标,打开“计算机管理”窗口。在单击“系统工具”左侧的“+”号,展开“本地用户和组”,右键选择“用户”选擇“新用户”,完成Windows系统用户创建。
Windows登录账号创建好后,就可以使用该账号登录到Windows服务器,如果要访问SQL Server服务器,还需要通过SQL Server登录账号与SQL Server服务器建立连接。具体操作方法如下:右击“登录名”选择快捷菜单中的“新建登录名”命令,在弹出的“登录名N建”对话框中单击“搜索”按钮,在弹出的“选择用户和组”对话框中输入新建立的Windows账号,再单击“检查名称”,单击“确定”。在选择"Windows身份验证”模式内容中,可为用户选择需要连接的默认数据库。同时可以为新创建的账号设置“服务器角色”,“用户映射”,“安全对象”等内容,最后单击“确定”完成用户创建。
SQL Server中定义了9个服务器角色,服务器角色名称和描述如表1所示。系统管理员可以为登录账号设置服务器角色,也可以根据需要建立所需要的角色。系统默认已将sa账号和Windows登录账号设置为public和sysadmin服务器角色。在“登录属性”对话框中,可以为用户设置“用户映射”,映射到用户登录名下的数据库在用户登录时进行访问。
3.2 SQL Server登录账号管理
SQL Server登录账号的创建方法同Windows登录账号的创建方法类似,右击“登录名”选择快捷菜单中的“新建登录名”命令,在弹出的“登录名一新建”,在“登录名”处输入新建用户名,并选择"SQL Server身份验证”模式,选择需要连接的默认数据库,最后单击“确定”完成用户创建。如果需要拒绝某个账号登录,可以通过找到“登录属性”中“状态”选项,将其中“登录”处的内容设置为“禁用”。被禁用登录账号不能登录到SQL Server服务器。为保证数据库安全,数据库管理员应及时对账号进行删除或停用。
4掌握数据库的安全性管理
创建的服务器账号只能连接SQL Server服务器,还不能访问具体的数据库。要想访问数据库,还需要将服务器登录账号映射到需要访问的数据库中数据库账号。数据库账号的创建方法是:展开需要访问数据库的“安全性”,右击“用户”,选择“新建用户”,输入新建“用户名”的内容,单击“用户名”后的按钮,在打开的“选择登录名”窗口中输入服务器登录账号名,单击“检查名称”进行检查服务器登录名后,单击“确定”按钮,在“默认架构”中选择“dbo”,最后在“数据库角色成员身份”选择“db owner”,完成数据库用户创建。数据库用户进行修改和删除操作,需要以数据库管理员身份登录SQL Server进行。
SQL Server中包括两种数据库角色:固定数据库角色和用户自定义角色。固定角色存在于每个数据库中,如表2所示,用户不能更改。
用户可根据权限不同定义新的角色,自定义数据库角色是对固定角色的补充。对于新创建的自定义数据库角色,需要先指派权限,将用户添加到该自定义的角色中。
5掌握数据库权限管理
權限是用户拥有操作的能力。在SQL Server中包括对句权限、语句权限和暗示性权限三种。对象权限是指为特定对象设置权限。特定对象可以为服务器、登录账号和服务器角色,也可以为应用程序角色、数据库或数据库角色等。语句权限指创建数据库或数据库中对象权限时需要设置的权限。暗示性权限是系统预先授予固定角色的权限。
权限管理的操作有授予权限、权限收回和拒绝权限。授权是指把对象权限或语句权限赋予数据库用户或角色。权限收回是把授予用户或角色的权限删除。拒绝权限是使数据库用户或角色拒绝使用权限的操作。授予权限、权限收回和拒绝权限的操作可以使用图形化界面或SQL语句方式实现。
6结束语
笔者从数据库四层安全机制对数据安全进行了分析。为做好安全管理工作,充分地保障网络用户的信息安全,还需要对SQL Server数据库在使用过程中的安全问题进行多角度分析,例如数据加密技术、存取控制技术、安全管理模式、备份与恢复等,只有这样才能更好地保证数据库的安全。