SQL Server:安全设计从头起

2016-01-29 16:34 1 1 收藏

SQL Server:安全设计从头起,SQL Server:安全设计从头起

【 tulaoshi.com - SQLServer 】

 

开发人员和管理人员通常不断地考虑程序安全问题的策略──添加安全措施不再是一个可以完全接收的方法。程序的安全问题必须从设计的开始就得考虑,并贯穿开发的整个过程。以后如果要开发一个SQL Server的数据库,你一定要从开始就遵循这些安全设计规则。


最基本的要点
如果你不能理解SQL Server security基本的概念,就马上先停止开发并先阅读这些开发准则,你不可能在不知道这些概念的基础上就能够正确地使一个数据库安全化。程序的安全正如一辆卡车一样。你具有一个发动机,一把钥匙,当钥匙打开发动机即发动机启动之后,就有可能发生的全部过程。如果你忽略了某些细节,驾驶过程中就会发生很多麻烦。在问题产生之后,你可以将卡车交给一个修理工,然而对于程序的安全问题,你自己将是数据库的修理工。


开始,你必须选择以下两种安全模式:
l Windows 认证模式:用户通过一个现成的Windows用户帐号来连接服务器。当一个用户试图与一个服务器连接的时候,SQL Server将会认证用户的Windows帐号的名称和密码。用户不能同时进入网络和SQL Server,只能进入其中的一个。这一方法也被称为一个被依赖的连接。

l 混合模式:这一模式将Windows认证模式和SQL Server认证联接在一起。用户可以通过一个Windows用户帐号进行连接,这正如Windows认证一样。但是,你也可以在SQL Server中直接建立用户帐号。每一个SQL Server帐号都存储了一个用户名和密码。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

我们建议在可能的情况下都使用Windows认证模式。然而,混合模式很可以使用,特别是在SQL Server 7.0(或更早版本)都可以使用。.对于早期的SQL Server版本,SQL Server认证存在一些缺点。Windows认证已经集成了操作系统的安全系统,这就提供了比SQL Server认证更多的安全特性,很容易的使用,效率更加高,安全性更加好。在设计开始的时候,你应该认真考虑选择哪一种模式最为合适。


密码
无论采用哪一些模式,你应该记住在SQL Server中为系统管理者(sa)设置一个密码。当安装SQL Server时,安装程序会自动建立一个带有SQL Server注册名称(sa)和一个空白密码的管理用户。如果你保持这些用户设置原样而使用混合安全模式,任何具备一点SQL Server基础知识的用户都可以很容易地进入到你的数据库中并做任何他想要做的事情。如果你使用的是Windows认证模式,在理论上你无需为sa用户设置一个密码,因为SQL Server注册不会接受这些的设置。但是设置是一个很良好的操作,尤其是当你被迫转移到将来使用的混合模式的时候。

如果安全模式已经启动,注册将成为关键。你必须使用正确的方法来启动程序,注册也是同样的,如果你不能正确地输入用户名和密码,程序将不能连接到网络,同时也不能连接到SQL Server。

作为一个管理者,一旦你已经启动了程序,你就做好安全管理的准备。可以通过定义以下的特性而实现:

l 用户(帐号):一个SQL Serve安全帐号代表着一个唯一的用户。一个用户也只有一个Windows帐号或者一个SQL Server注册,这与数据库中的用户帐号相统一。

l 组(帐号):每一个用户都属于一个或多个组,这由认证模式决定。每一个组都具有特定许可。作为一个组的成员,你将获得所有组的许可。

l 对象所有权:所有权属于建立对象的用户。所有者可以将访问权限分配给用户。如果你是一个视的所有者,你还可以决定哪些用户可以通过视来查看数据。

l 许可:一个许可代表着具有执行某些操作的权利,比如打开一个视或者更改一个存储程序。SQL Server承认许可的三种状态:GRANT给你一个用户访问;REVOKE删除访问;DENY防止用户访问对象。

l 任务:这是一个SQL Server安全帐号,可以将帐号的集合作为一个简单的单元来处理。任务定义在特定数据库中用户可以做哪些和哪些不可以做。


从安全的角度而考虑
 
设计过程应该用效地定义哪些地方需要进行安全设置和如何设置。在这一过程之前你应该从两个方面考虑:

l 敏感数据;

l 可以查看敏感数据的人。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

敏感数据包括所有可能的数据,包括整个数据库中的所有数据,虽然这样的安全级别很少存在。你的工作就是定义为敏感数据并进行保护。

你选择的认证模式和建立的注册将通过限制哪些用户可以进入到数据库而实施第一步安全步骤。

第二步就要列举可以访问数据库的所有用户,然后决定所有数据是否对所有的用户都适用。通常,你需要对一些数据进行保护,比如工资或者其他私人数据。这就意味着只有特定的用户可以访问和查看数据。你还可以设置哪些用户更改数据。

始终记住的一条规则是“最小权利”概念。如果有人在他的工作中不需要访问数据,那即不要给他访问的权限。应该避免所有的用户都具有sa用户的访问权限。


具体的建议
当进行安全设置的时候,经验也是一个很好的老师,但通常也会有适用于通用数据库的设计准则:

l 从开始就获得数据库和对象的所有权。当建立一个新的数据库时,你将会成为数据库的所有者,并能够设置数据库中所有发生一切。你可以以管

来源:https://www.tulaoshi.com/n/20160129/1498938.html

延伸阅读
标签: SQLServer
  日前SQL INJECTION的攻击测试愈演愈烈,很多大型的网站和论坛都相继被注入。这些网站一般使用的多为SQL SERVER数据库,正因为如此,很多人开始怀疑SQL SERVER的安全性。其实SQL SERVER 2000已经通过了美国政府的C2级安全认证-这是该行业所能拥有的最高认证级别,所以使用SQL SERVER还是相当的安全的。当然和ORCAL、DB2等还是有差距,但...
标签: SQLServer
SQL Server上内置了加密术用来保护各种类型的敏感数据。在很多时候,这个加密术对于你来说是完全透明的;当数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。SQL Server可以加密下列这些组件: ·密码 ·存储过程,视图,触发器,用户自定义函数,默认值,和规则。 ·在服务器和用户之间...
标签: SQLServer
  SQL server 的扩展存储过程,其实就是一个普通的 windows DLL,只不过按照某种规则实现了某些函数而已。 近日在写一个扩展存储过程时,发现再写这类动态库时,还是有一些需要特别注意的地方。之所以会特别注意,是因为DLL运行于SQL server的地址空间,而SQL Server到底是怎么进行线程调度的,却不是我们能了解的,即便了解也无法控制。...
对于数据库应用程序,数据库的安全是至关重要的。SQL Server的安全功能可以保护数据免受未经授权的泄漏和篡改!下边是对安全一章的总结! 首先是安全对象的一些总结!大家看这张图: 在这里我把固定服务器角色和固定数据库角色的详细内容给大家! 1, 固定服务器角色的: 2,固定数据库角色: 当然有了这些知识基础,我们如何管...
标签: SQLServer
在改进SQL Server 7.0系列所实现的安全机制的过程中,微软建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行全面地管理。按照本文介绍的步骤,你可以为SQL Server 7.0(或2000)构造出一个灵活的、可管理的安全策略,而且它的安全性经得起考验。 一、验证方法选择 本文对验证(authenticat...

经验教程

433

收藏

62
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部