17xie > SQL Server 2000系统管理与开发指南 > 第十章 数据库安全性
背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-8573.html    注册17xie 一起来写书 实现您的出书梦想!

  数据库安全性

对于任何数据库系统来说,安全性都是至关重要的。安全性直接关系到数据库的可靠性、稳定性等问题,对于不同的用户,由于他们的级别不同,所以授予的安全级别也是不同的。必须针对不同的情况设置不同的安全模式。

本章主要介绍以下内容:

n         认证模式

n         Login管理

n         用户管理

n         角色管理

10.1  认证模式

用户必须有一个Login账户,才能连接到SQL Server。在SQL Server 2000中,有两种Login认证机制:SQL Server认证机制和Windows NT认证机制。

使用SQL Server认证机制时,SQL Server管理员定义SQL ServerLogin用户和密码。要连接到SQL Server,必须提供Login用户和密码。如果使用Windows NT认证机制,用户在访问SQL Server的时候,不需要提供SQL ServerLogin用户的密码,但是,在用户连接SQL Server之前,SQL Server系统管理员必须定义Windows NT账户或者Windows NT组是有效的SQL ServerLogin账户。

如果SQL Server运行在Windows NT或者Windows 2000上,系统管理员必须指定系统使用的认证模式,有两种认证模式:Windwos NT认证模式和混合模式。Winwos NT认证模式只能使用Windows NT认证机制,混合模式既可以使用Windows NT认证机制,又可以使用SQL Server认证机制。

一般情况下,如果所有的客户机都支持信任连接,建议使用Windows NT认证模式,Windows NT认证模式具有以下特点:

n         提供了更多的功能。比如安全确认和口令加密、口令失落、最小口令长度和账户锁定等。

n         可以在SQL Server系统中增加用户组。

n         允许用户迅速访问SQL Server系统。

SQL Server系统按照如下步骤连接Windows NT认证模式中的login账户:

1)当用户执行连接到SQL Server系统的操作时,客户机打开一个SQL Server系统的信任连接,该信任连接负责把Windows NT组和用户传送到SQL Server系统中。

2SQL Server系统在SQL Server系统表syslogins中的用户清单中查找该用户的Windows NT用户账户或者组账户,如果找到,就接受这次连接。

3)用户所有的登录账户既可以是SQL Server的用户账户,也可以是WindowsNT的组账户,这些账户都必须作为SQL Server系统账户定义。

4)登录到一个单个网络域后,就可以访问该域中所有的SQL Server机器。

混合模式和SQL Server认证机制具有以下特点:

n         混合模式允许使用非Windows NT客户、Internet客户和混合的客户组连接到SQL Server中。

n         可以增加SQL Server的安全性。

SQL Server系统按照如下步骤处理login账户:

1)当使用SQL Server账户和口令的用户连接到SQL Server的时候,SQL Server系统验证该用户是否在系统表syslogins中,并确认口令是否正确。

2)如果在系统表中找到该用户,并且口令正确,就可以连接到SQL Server,如果找不到该用户,或者口令不正确,此连接失败。

设置认证模式的步骤如下:

1)选择信任连接协议,并确认使用该协议的客户机可以使用Windows NT认证模式。

2)使用SQL Server Enterprise Manager设置服务器的认证模式,在图10-1中,选择认证模式。

10-1  选择认证模式

@        只有系统管理账户才可以进行认证模式的设置。

3)在认证模式设置后,还可以对其进行编辑,方法如下:

在服务器上单击鼠标右键,弹出如图10-2所示的快捷菜单。单击Edit SQL Server Registration Properties,打开如图10-3所示的对话框。

10-2  服务器菜单

10-3  编辑SQL Server注册模式

4)停止MSSQL Server服务,然后重新启动该服务,使设置生效。

5)创建Windows NT组和用户,授予他们通过信任连接访问SQL Server

6)使用SQL Server Enterprise Manager授权Windows NT组和用户访问SQL Server

7)允许通过信任连接协议连接服务器的用户访问服务器。为每个用户创建一个login ID和口令,并指定一种默认语言。

10.2  Login管理

Login是基于服务器使用的用户名称。可从Windows NT组和用户中创建Login账户,也可以创建新的SQL Server Login账户。Login账户的信息存储在系统表sysloginsAdministrantors是系统管理员的简称,在SQL Server系统和全部数据库中有全部权限。BULLTIN\Administrators是为所有的Windows NT管理员提供的默认的Login账户。BUILTIN\Administrators账户在SQL Server系统和全部数据库中有全部权限。

创建Login账户有以下两种方法:

n         Windows NT组中创建Login账户。

n         创建新的SQL Server Login账户。

可以使用SQL Server Enterprise Manager或者系统存储sp_grantlogin允许Windows NT用户账户和组账户连接到SQL Server上。

系统存储过程sp_grantlogin的语法形式如下:

sp_grantlogin{login}

login是要增加的Windows NT用户账户或者组账户。当增加Windows NT账户到SQL Server系统中的时候,应该考虑以下因素:

n         删除WindowsNT组或者用户,不会删除SQL Server中的组或者用户。

n         如果Windows NT组中的每个成员都要连到SQL Server上,可以为Windows NT组增加一个login账户。

n         如果Windows NT用户不是SQL Server组的成员,为Windows NT用户增加一个login账户。

另外,还可以使用系统存储过程sp_denyloginsp_revokelogin来管理login,使用sp_denylogin可以阻止Windows NT组或者用户连接到SQL Server中,使用sp_revokelogin可以从SQL Server中删除Windows NT组或者用户。

也可以使用系统存储过程sp_addlogin来创建一个用于SQL Serverlogin账户。只有系统管理员或者安全管理员才可以执行该存储过程,sp_addlogin的语法形式如下:

sp_addlogin{login}[,‘password[,‘database]]

使用SQL Server Enterprise Manager创建login账户的步骤如下:

1)运行SQL Server Enterprise anager,连接到相应的服务器,单击Security,如图10-4所示。

10-4  展开Security

2)用鼠标右键单击Logins,弹出如图10-5所示的快捷菜单。

10-5  Login菜单

3)在login菜单中,单击New Login菜单项,弹出如图10-6所示的SQL Server Login Properties-New Login对话框。在该对话框中,有三个选项卡:GeneralServer RolesDatabase Access

10-6  SQL Server Login Properties-New Login对话框

General选项卡中,可以给login账户命名并选择默认访问的数据库等信息。

Server Roles选项卡如图10-7所示,在该选项卡中,可以指定该账户的角色和描述信息。

10-7  Server Roles选项卡

Database Access选项卡如图10-8所示,在该选项卡中,可以指定该帐户可以访问的数据库以及在数据库中的用户名称和角色。

前面已经提到,login账户的信息存储在系统表syslogins中,在图10-9中查看syslogins系统表中的信息。使用系统存储过程sp_addlogin可以在系统表syslogins中增加一条记录。在执行了系统存储过程sp_addlogin之后,就可以使用该账户登录SQL Server,可以使用存储过程sp_password改变口令。

10-8  Database Access选项卡

10-9  系统表Syslogins信息

10.3  用户管理

用户是基于数据库的名称,是和login账户对应的。可以使用SQL Server Enterprise Manager或者系统存储过程sp_grantdbacsess向数据库中增加一个用户账户。只有数据库所有者和数据库访问管理员才可以选择系统存储过程sp_grantdbacess

系统存储过程sp_grantdbacess的语法形式如下:

sp_grantdbacess{login}[,‘name_in_db]

login是新的账户login名称,可以是Windows NT用户、Windows NT组或者SQL Servere用户。Name_in_db是可选的数据库账户名称。

此外,也可以使用系统存储过程sp_revodedbacess从当前数据库中删除一个账户,使用系统存储过程sp_change_uers_login可以改变当前数据库中的SQL Serverlogin账户和SQL Server用户之间的关系。

在每个数据库中,都有两个默认的用户账户:dboguest。图10-10显示了pubs数据库中的用户信息。

10-10  查看数据库用户信息

使用SQL Server Enterprise Manager增加用户的步骤如下:

1)运行SQL Server Enterprise Manager,连接到相应的服务器,在打开的某个数据库的数据库用户上单击鼠标右键,弹出如图10-11所示的快捷菜单。

10-11  数据库用户菜单

2)在数据库用户菜单中,单击New Database User,弹出如图10-12所示的Database User Properties-New User对话框,在该对话框中,可以选择可以访问该数据库的账户,并指定该账户在该数据库中使用的用户名称和该用户的角色等信息。

10-12  Database User Properties-New User对话框


字数:5436    最后更新:11个月以前 [12-01 13:18]徐振成 修改
本页编辑者:徐振成  
[前一页]:第二部分 SQL Server …  [后一页]:10.4角色管理使用
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号