APP下载

SQL Server的安全级别分析

2010-08-15孙琪

太原城市职业技术学院学报 2010年5期
关键词:身份验证账户服务器

孙琪

(河南经贸职业学院,河南 郑州 450053)

SQL Server的安全级别分析

孙琪

(河南经贸职业学院,河南 郑州 450053)

SQL Server是一种广泛使用的数据库。本文介绍了SQL Server安全管理的设计方法,主要通过设置身份验证、管理登录账户、管理数据库用户几方面实现。用户只要能够理解其管理机制,就可以快速进行数据库的安全配置。

SQL;安全级别;数据库安全

安全性对于任何一个数据库管理系统都是至关重要的。数据库中通常存储着大量的数据,这些数据可能是个人信息、客户资料或其他机密资料。如果有人未经授权访问数据库,并窃取了查看和修改重要数据的权限,将会造成极大的危害。无论用户如何获得对数据库的访问权限,坚固的安全体系都可以确保对数据进行保护。sql server使用登录标识、数据库用户、角色和组这些概念来保护数据库中的信息资源,以防止这些资源的非授权使用。

安全性管理包括两个方面的内容,一方面是用户登录系统的管理(验证),另一方面是用户使用数据库对象的管理 (授权)。只有特定的用户使用特定的认证模式,才能登录到系统中,使用系统的资源。在数据库中,只有具有一定权限的用户,才能使用相应的数据库对象(即使用户登录到sqlserver系统中,若没有一定的权限,仍然不能操作相应的数据库对象)。

一、验证方法选择

验证(authentication)是指检验用户的身份标识,授权(authorization)是指允许用户做些什么。验证过程在用户登录SQL Server的时候出现,授权过程在用户试图访问数据或执行命令的时候出现。

构造安全策略的第一个步骤是确定SQL Server用哪种方式验证用户。SQLServer的验证是把一组账户、密码与Master数据库Sysxlogins表中的一个记录进行匹配。Windows验证是请求域控制器检查用户身份的合法性。一般地,如果服务器可以访问域控制器,我们应该使用Windows NT/2000验证。域控制器可以是Win2K服务器,也可以是NT服务器。无论在哪种情况下,SQL Server都接收到一个访问标记(AccessToken)。访问标记是在验证过程中构造出来的一个特殊列表,其中包含了用户的SID(安全标识号)以及一系列用户所在组的SID。SQLServer以这些SID为基础授予访问权限。

如果使用SQL Server验证的登录,它最大的好处是很容易通过Enterprise Manager实现管理。使用SQL Server进行验证最重要的缺点是,对于每一个数据库,我们必须分别地为它设置管理权限。如果某个用户对两个数据库有相同的权限要求,我们必须手工设置两个数据库的权限,或者编写脚本设置权限。如果用户数量较少,比如25个以下,而且这些用户的权限变化不是很频繁,SQLServer验证的登录或许适用。但是,在几乎所有的其他情况下,这种登录方式的管理负担将超过它的优点。

二、设置身份验证模式

用户必须使用特定的登录账户才能连接到SQL Server。创建连接后,用户必须使用特定的用户账户才能对数据库进行访问,而且只能查看经授权可以查看的表和视图,只能执行经授权可以执行的存储过程和管理功能。

SQL Server的验证模式分为windows验证模式和混合验证模式。Windows身份验证模式使用户可以通过windows操作系统用户账户连接到SQLServer实例。当用户通过windows用户账户进行连接时,SQL Server通过回叫windows以获得信息,重新验证账户名和密码。混合验证模式使用户可以使用windows身份验证或SQL Server身份验证与SQL Server实例连接。在windows身份验证模式或混合模式下,通过windows用户账户连接的用户可以使用信任连接。

三、登录账户管理

<域名><用户名>:一个Windows用户账户,允许作为SQLServer登录账户使用。

BUILTINAdministrators:一个Windows组账户,凡属于该组的用户账户,都可以作为SQL Server登录账户使用。

sa:SQL Server系统管理员登录账户,该账户拥有最高的管理权限,可以执行服务器范围内的所有操作。

由于sql server不能更改用户名称,也不能删除这个超级用户,所以我们必须对这个账户进行最强的保护,当然包括使用一个非常强壮的密码。

最好不要在数据库应用中使用sa账户,只有当其他系统管理员不可用或忘记了密码,无法登录到SQL Server的时候,才使用sa这个特殊的登录账户。建议数据库管理员建立一个拥有和sa一样权限的超级用户来管理数据库。

Sql server的认证模式有windows身份认证和混合身份认证两种,如果数据库管理员不希望操作系统管理员通过登录操作系统来接触到数据库的话,可以在账户管理中把系统账号“builtinadministrators”删除,不过这样做的结果是,一旦sa账户忘记密码的话,就没有办法来恢复了。

四、管理数据库用户

管理数据库的过程实际上就是建立登录账户和用户账户之间映射关系的过程。

1.添加数据库用户

要授予一个登录账户访问数据库的权限,就必须将这个登录账户在该数据库中映射为一个数据库用户账户。

2.修改数据库用户

在数据库建立一个数据库用户账户时,要为账户设置某种权限,可以通过为它指定适当的数据库角色来实现。修改所设置的权限时,只需要修改该账户所属的数据库角色即可。

3.删除数据库用户

从当前数据库中删除一个数据库用户,就删除了一个登录账户在当前数据库中映射。

SQLServer的安全机制一般主要包括三个方面:

服务器级别的安全机制:这个级别的安全性主要通过登录账户进行控制,要想访问一个数据库服务器,必须拥有一个登录账户。登录账户可以是Windows账户或组,也可以是SQLServer的登录账户。登录账户可以属于相应的服务器角色。至于角色,可以理解为权限的组合。

数据库级别的安全机制:这个级别的安全性主要通过用户账户进行控制,要想访问一个数据库,必须拥有该数据库的一个用户账户身份。用户账户是通过登录账户进行映射的,可以属于固定的数据库角色或自定义数据库角色。

数据对象级别的安全机制:这个级别的安全性通过设置数据对象的访问权限进行控制。如果是使用图形界面管理工具,可以在表上点右键,选择属性权限,然后在相应的权限项目上打勾就可以了。

如果是使用sql语句,可以如下:

grant select|insert|update|delete on tablename to username

deny select|insert|update|delete on tablename to username

revoke select|insert|update|delete on tablename from username

grant是赋予权限,deny是拒绝权限,revoke是撤销权限,而select|insert|update|delete是可以设置的各个权限项目。

[1]王雪峰.SQL Server 2000服务器的安全管理[J].电脑学习,2009,(1).

[2]田海涛.SQL Server安全管理策略[J].统计与咨询,2003,(4).

[3]李超.SQL SERVER 2000的安全机制[J].中国轻工教育,2006,(1).

[4]刘瑜,陈铁英.Microsoft SQL Server数据库的安全策略及实现方法[J].计算机工程与设计,2003,(1).

TN

A

1673-0046(2010)5-0170-02

猜你喜欢

身份验证账户服务器
如何切换Windows 10本地账户与微软账户
通信控制服务器(CCS)维护终端的设计与实现
探索自由贸易账户体系创新应用
外汇账户相关业务
父亲的股票账户
中国服务器市场份额出炉
人脸识别身份验证系统在养老保险生存核查中的应用
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia