当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 保护SQL服务器的安全-用户识别问题

MSSQL
SQL0290N表空间状态问题:停顿的独占处理
实例讲解启动mysql server失败的解决方法
SQL Server 2005数据转换服务设计问题集锦
不能安装SQL Server 2005的问题及解决方法
SQL中Groupby和Having的使用方法
SQL Server中Update的用法
MSSQL中部分字段重复数据的删除方法
mssql 大小写区分方法
Sql server中时间查询的一个比较快的语句
机器异常关闭重起后出现ora-19809错误
快速解决日志文件满造成的无法写入问题
启用数据库复制时为什么会出现18483错误
实例讲解Ora-12514和Ora-12514解决方法
实例讲解MSDB数据库置疑状态的解决方法
实例讲解SQL查询连续号码段的巧妙解法
用一个案例讲解应用程序越来越慢的原因
一则DB2数据库重定向表空间的恢复案例
SCN不一致将会导致ORA-00600 2662错误
Vista下安装SQL Sever 2005报错的解决办法
用一条SQL实现:一行多个字段数据的最大值

MSSQL 中的 保护SQL服务器的安全-用户识别问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 124 ::
收藏到网摘: n/a

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

登录

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

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

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

你应该使用哪一种?

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

设计上的考虑

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

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

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

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

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

什么是系统存储过程?

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

用户

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

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