网管联盟 | 网管论坛 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 俱乐部 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > windows > 服务器技术 > SQL服务器 > 保护SQL服务器的安全-用户识别问题  

保护SQL服务器的安全-用户识别问题 评论 论坛

2007-03-15   作者:bitsCN整理   来源:中国网管联盟   PV:

关键词:识别 问题 用户 安全 服务器 保护 数据库 登录 角色 SQL

在我们关于SQL服务器安全系列的这文章里,我们的目标是向你提供安全安装SQL服务器所需要的工具和信心,这样的话,你有价值的数据就会受到保护,避免无意或者有意的破坏或者窃取。在本文里,我们会深入一些基础的概念,在保护数据库安全的时候,你需要利用下面这些概念:登录、用户、角色,以及组。确定谁在请求访问数据或者SQL服务器里其他信息等看上去很简单的过程,都需要用到所有这些概念。

  登录

  登录规定了哪些用户能够连接到安装好的SQL服务器上——这不是某个特定的数据库,而是而是整个服务器。登录有两种不同的形式:

  Windows集成的登录,它会授权特定的Windows用户或者组使用它们的Windows信任书进行连接。
bbs.bitsCN.com


  SQL服务器登录,它会授权用户使用由SQL服务器保存的用户名和密码进行连接。

  你应该使用哪一种?

  Windows集成登录肯定要比SQL服务器登录更加高效和更方便,因为用户只需要登录一次——在网络这一层。单独登录到服务器是没有必要的,因为SQL服务器会自动地处理(在后台)Windows登录,从而允许到服务器的访问。只有在服务器运行在Windows NT或者2000上的时候,对Windows登录的支持才有效;安装在Windows 98上的服务器必须要依赖SQL服务器登录。如果你正在运行Windows 2000,而且最终需要支持原有的应用程序,那么就要记住,SQL服务器登录只有在混合模式下才可用。 bitsCN#com中国网管联盟

  设计上的考虑

  在设计自己数据库的时候,你需要考虑登录的方法——而且要在你真正开始保证最终产品的安全之前。你应该知道服务器使用的是哪种授权方式。那些还在Window 98上使用服务器的人可能现在就要考虑升级,如果安全是一个很重要的问题的话;那样的话,他们就可以使用Windows集成的安全(策略)。

  另外一个设计问题是知道谁拥有访问权,他们能够访问什么数据,以及他们是否能够对对象和数据进行更改。你不用真的列出其名字;你只需要利用工具有效地帮助用户就行了。最后,你应该使用系统的存储过程来管理安全。SQL服务器提供了两种存储过程,用于登录的管理:

  ◆sp_addlogi——在使用SQL服务器验证保护你服务器安全的时候要使用这个存储过程。具体的说,这个存储过程会创建一个新的SQL服务器登录,它允许用户使用SQL服务器验证连接到SQL服务器的实例上。 www@bitscn@com

  ◆sp_grantlogin——这个存储过程允许Windows 2000的用户或者组帐号使用Windows验证连接到微软的SQL服务器上。

  只有sysadmin或者securityadmin固有服务器角色的成员能够执行这两个存储过程。

  什么是系统存储过程?

  系统存储过程是一个内置的存储过程,它能够帮助你管理服务器。你可以在MSDN库里找到一长串的系统存储过程。SQL服务器文献在线囊括了每个系统存储过程的所有句法细节和使用示例。

  用户

  登录属于服务器,而用户则属于数据库。用户ID会识别特定数据库的特定用户。而且,用户对于数据库来说是专门的——也就是说,Northwind数据库里Fred这个用户同公共数据库里Fred那个用户是不同的,尽管这两个Fred可能和同一个登录相关联。

  当你在数据库里创建一个用户的时候,你就将一个特定的登录同这个用户关联起来了。对于这个数据库而言,登录具有这个用户的权限。尽管登录所用的ID不需要和用户ID相同,但是在通常情况下,如果你保持这样的惯例,那么事情就会更少让人糊涂。如果登录在数据库里没有相关联的用户,那么用户能够通过特殊的来宾用户帐号连接到该数据库。

bbs.bitsCN.com中国网管论坛



  特殊用户

  所有的用户都不是数据库里的常住人口,而且不能保证用户帐号就是他们自己的。在希望用户临时访问数据库的时候,你可以使用来宾用户帐号,它可以不使用常规的用户帐号而登录访问服务器。来宾用户的登录必须拥有访问数据库的权限,而且数据库必须设有来宾用户帐号。一旦进了数据库,来宾用户会被限制到只能进行来宾用户帐号所指定的活动。但是,来宾用户帐号在一个刚刚创建的数据库里不是缺省就存在的;(数据库的)所有者或者系统管理员必须创建这样一个帐号。

  除了来宾用户,你还需要考虑数据库的所有者(DBO)。他是创建数据库的用户。数据库的所有者或者系统管理员必须赋予(其他人)权限,才能让他们在数据库创建其它的对象。

  为了向数据库里添加数据,你要运行sp_grantdbaccess。这个存储过程会在数据库里创建一个和指定登录相对应的用户。只有sysadmin固有服务器角色、db_accessadmin角色,以及db_owner固有服务器角色的成员才能够执行sp_grantdbaccess。
bitsCN#com中国网管联盟


  角色

  角色让你将用户集中到一起,以利于更简单的管理。就像用户一样,角色也是数据库的对象。例如,你可以在自己的采购数据库里定义一个“销售”角色,并让所有的产品所有销售人员都成为这个角色的成员。如果你随后赋予这个“销售”角色许可,那么这些许可会自动地应用于该角色的所有成员上。此外,一个用户可以是多个角色的成员。

  有三种类型的角色:

  ◆公共——这个角色会为所有的用户设置缺省的基本许可,所有的用户都会被分配公共角色。

  ◆服务器——服务器角色适用于整个服务器

  ◆数据库——这些角色适用于专门的数据库。

  服务器和数据库角色都有预先定义的类别,我们把它们列在表格A里。

  中国_网管联盟bitsCN.com

角色的分配

  有一些系统存储过程是用于向数据库添加角色和成员的。使用sp_addrole可以在数据库里创建一个新的角色。然后,运行sp_addrolemember向角色添加用户帐号。你不能创建固有的服务器角色;你只能够在服务器这一层添加角色。只有sysadmin固有服务器角色、db_securityadmin角色,以及db_owner固有数据库角色的成员才能够执行sp_addrole或者sp_addrolemember。

  

  组向你提供了批量管理安全的第二种方式,而不需要一个用户一个用户地来管理。在SQL服务器里并不存在组。它们由操作系统来维护。组的使用可以让你把SQL服务器安全策略和整个企业的安全策略绑在一起。

www@bitscn@com

  例如,如果你有一个叫做“销售”的Windows 2000组,它包含着你所有的销售人员,你可以在SQL服务器里专门为这个组创建一个Windows登录。这个“销售”组的任何成员都会作为指定的登录连接到SQL数据库上(除非他们有自己单独的优先登录)。你可以进一步将这个登录同任何数据库里的用户相关联,然后赋予该用户许可。组的任何成员都会在他们使用数据库的时候获得指定的许可。

  管理策略

  用户管理的主要目标是双重的。首先,你希望确保只有那些能够获得数据的用户是真正需要使用数据的人。其次,你应该尽力将用于用户管理的精力降到最小。繁杂的策略要比直接的策略更少被人采用,否则就会导致安全的极大破坏。下面是你在用户管理中可以采纳的一些简单指导方针:

  在可能的情况下,尽量使用Windows集成安全。这会降低密码维护和用户创建所要的花费精力。它还会让SQL服务器将登录信息传递给已连接的服务器,这在分布式数据库里很重要。

[bitsCN_com]



  在可能的情况下,尽量在聚合这一层管理安全。不应该为每个必须访问你数据的单个人创建用户,而应该创建像“销售”或者DataEntryUsers这样的角色。然后你就可以通过添加和删除角色的用户来控制访问,同时向角色分配许可。另外,你也可以在Windows层管理组成员,并向代表整个Windows组的用户分配许可。

  来宾用户很危险,因为它会给你服务器上每个的登录都赋予访问数据库的权限。不要在数据库里创建来宾用户,除非它要对所有的人都开放。

  基本内容

  本篇文章里所讨论的概念都是实现你SQL服务器安全的基本要素,它们一点也不简单。理解每个登录的工作方式离你确定自己整个(安全)策略还有很长的路要走。
bitsCN.nET*中国网管博客

表格 A


收藏本文】 【推荐好友】 【欢迎投稿】 【打印本文
上一篇:如何应用SQL Server中的DBCC避免堵塞   下一篇:如何恢复/修复MS SQL数据库的MDF文件
 相关文章:
·如何应用SQL Server中的DBCC避免堵塞 ·如何恢复/修复MS SQL数据库的MDF文件
·SQL Server 2005:向系统表说再见(图) ·专家谈SQL Server 2005 CLR
·SQL Server 2005与DB2 8.2之对比 ·部署 Microsoft SQL Server 2005 群集
保护SQL服务器的安全-用户识别问题 评论:
    评论加载中…
  
  责任编辑:网盟  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
 
本类热门排行:
1.部署 Microsoft SQL Serv
2.通用SQL数据库查询语句精华使用简介
3.SQL入门:创建表
4.安装指南:SQL Server 2005安装及界面
5.在SQL Server 2000查询分析器里面收缩数
6.如何远程连接局域网内的sql server
7.SQL Server的数据类型介绍
8.剖析SQL Server 2005查询通知之基础篇
9.SQL Server定期自动备份
10.SQL Server 2005:数据类型最
最新推荐文章:
1.关于SQL Server中索引使用及维护简介
2.SQL Server数据在不同数据库中的应用
3.教你如何在SQL Server计算列和平均值
4.SQL Server 2005 - 实作CLR存储过程
5.部署 Microsoft SQL Server 2005 群集
6.SQL Server 2005与DB2 8.2之对比
7.专家谈SQL Server 2005 CLR
8.SQL Server 2005:向系统表说再见(图)
9.如何应用SQL Server中的DBCC避免堵塞
10.SQL Server讲堂:加密与SQL注入(图)
本类最新文章:
1.50种方法巧妙优化SQL Server数据库
2.在SQL Server中使用CLR调用.NET方法
3.比较SQL Server约束和DML触发器
4.向外扩展SQL Server 实现更高扩展性
5.SQL Server 查询分析器快捷键集合
6.用SQL Server 2005同义字缩短开发时间
7.关于SQL Server中索引使用及维护简介
8.SQL Server数据在不同数据库中的应用
9.SQL Server如何访问sybase数据库的表
10.动态创建MSSQL数据库表存储过程
网管论坛交流:
·情人节快乐
·版主其实很辛苦(献给中国网管论坛所有版
·下雪了(精华哈)
·流量控制/限速讨论专贴(随时整理+更新
·经过了试用期,我自己写的述职报告!有用
·转网络中最美丽的行为
·过年了,早点回家看看爹娘
·图文并茂教你组建磁盘阵列
·计算机日常清洁维护方法
·郁闷啊,服务器修好了,可是……