第十章安全管理.ppt

上传人:本田雅阁 文档编号:2918214 上传时间:2019-06-05 格式:PPT 页数:55 大小:335.52KB
返回 下载 相关 举报
第十章安全管理.ppt_第1页
第1页 / 共55页
第十章安全管理.ppt_第2页
第2页 / 共55页
第十章安全管理.ppt_第3页
第3页 / 共55页
第十章安全管理.ppt_第4页
第4页 / 共55页
第十章安全管理.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第十章安全管理.ppt》由会员分享,可在线阅读,更多相关《第十章安全管理.ppt(55页珍藏版)》请在三一文库上搜索。

1、第十章 SQL Server的安全管理,9. 1 SQL Server 2000的验证模式 9. 2 登录管理 9. 3 用户管理 9. 4 角色管理 9. 5 许可管理,数据的安全性是指保护数据以防止因不合法的使用而造成数据的泄密和破坏.这就要采取一定的安全保护措施. 在数据库中,系统用检查口令等手段来检查用户身份,合法的用户才能进入数据库系统.当用户对数据库执行操作时,系统自动检查用户是否有权限执行这些操作.,SQL Server 2000提供4层安全防线: 1、操作系统的安全防线 2、SQL Server的运行安全防线 3、SQL Server的数据库安全防线 4、SQL Server的

2、数据库对象安全防线,SQL Server2000的安全性管理是建立在认证和访问许可两者机制上的。 认证是指来登录SQL Server的登录帐号和密码是否正确,以此来验证其是否具有连接SQL Server的权限。 用户只能在获取访问数据库的权限之后,才能对服务器上的数据库进行权限许可下的各种操作。这种用户访问数据库权限的设置是通过用户帐号来实现的。 同时在SQL Server中,角色作为用户组的替代物大大简化了安全性管理。 SQL Server的安全模式中包括以下部分:SQL Server的登录、数据库用户、权限、角色,9. 1 SQL Server 2000的验证模式,9.1.1 Window

3、s验证模式 9.1.2 混合安全模式 9.1.3 设置验证模式 9.1.4 SQL Server 系统登录验证过程,验证阶段(Authentication),SQL Server和Windows NT/2000是结合在一起的,因此就产生了两种验证模式。,验证模式指的是安全方面的问题,每一个用户要使用SQL Server,都必须经过验证。,在安装过程中,系统会提示选择验证模式,Windows身份验证模式,混合验证模式,9.1.1 Windows 验证模式(NT验证模式),Windows验证模式是指要登录到SQL Server系统的用户身份由NT系统来进行验证。在Windows登录验证模式下,SQ

4、L Server回叫Windows NT以获得相应的登录信息,并在syslogins表中查找该帐户,以确定该帐户是否有权登录。在这种方式下,用户不必提供登录名或密码让SQL server验证。,Windows身份验证模式使用Windows操作系统本身提供的安全机制验证用户的身份。只要用户能够通过Windows NT或Windows 2000的用户帐户验证,就可连接到SQL Server。,Windows验证模式对SQL Server的影响,在 Windows NT/2000的注册表内,保存了SQL Server验证模式的相关信息及启动SQL Server的必须信息.,在注册表中,我的电脑KHE

5、Y_LOCAL_MACHINESoftwareMicrosoftMSSQLServerMSSQLServer中的LoginMode的值决定采用哪种验证模式.每次启动SQL Server时,都将检索该键的值,以决定使用哪种验证模式.,使用Windows NT验证有如下特点:,1、NT验证模式下由Windows NT管理用户帐户,数据库管理员的工作是管理数据库;,2、Windows NT有功能很强的工具去管理用户帐户,如安全验证和密码加密、审核、密码过期、最短密码长度以及在多次登录请求失败后锁定帐户;,3、可以在SQL Server增加用户组;,9.1.2 混合模式,混合验证模式是指用户登录SQL

6、 Server系统时,其身份验证由Windows NT和 SQL Server共同进行。,SQL Server验证模式处理登录的过程为:,用户在输入登录名和密码,SQL Server在系统注册表中检测,若输入的登录名存在,而且密码也正确,成功登录SQL Server,混合验证模式有如下特点:,混合模式允许非Windows客户、Internet客户和混合的客户组连接到SQL Server中,增加了安全性方面的选择,9.1.3 设置验证模式,设置验证模式的工作只能由系统管理员来完成。,使用SQL Server企业管理器时,设置或改变验证模式的步骤如下:, 运行SQL Server 企业管理器。,

7、右键单击“SQL Server 服务器组”的要设置验证模式服务器,然后选择“属性”,系统将弹出 “SQL Server 属性(配置)”窗口,单击“安全性”选项卡,可从中选择一种登录模式,审核失败登录,有助于查登录失败的原因,审核成功登录,帮助调试,但却影响登录的速度。,重新启动SQL Server才可以使修改的值生效。,SQL Server的登录访问确认,验证 SQL Server 验证信任连接,SQL Server 验证账户名和密码,或,SQL Server,Windows 2000 组或用户,Windows 2000,SQL Server 登录账户,9.2 登录管理,9.2.1 系统管理员

8、登录账户 9.2.2 用T-SQL语句创建、查看、删除SQL Server 登录账户 9.2.3 用企业管理器创建、查看、删除SQL Server 登录账户,9.2.1 系统管理员登录账户,SQL Server有两个默认的系统管理员登录帐户: sa 和 BUILTINAdministrators。,这两个登录帐户具有SQL Server系统和所有数据库的全部权限。sa是一个特殊的登录名,它是混合验证机制下SQL Server的系统管理员,sa始终关联dbo用户。BUILTINAdministrators是NT系统的系统管理员组。,具体地说,系统管理员负责下面的工作: 创建登录名 配置服务器 创

9、建、删除数据库 无须考虑所有权和权限,可以操作各种数据库对象 停止、启动服务器 停止在服务器上运行的无效过程 某些权限只能被系统管理员拥有并且不能被授予其他用户。这些功能是管理存储空间,管理用户进程及改变数据库选项。,9.2.2用T-SQL语句创建、查看、删除SQL Server登录帐户, SQL Server登录帐户的创建,使用系统存储过程 sp_addlogin 可以创建一个登录帐户。sp_addlogin存储过程的语法形式如下:,sp_addlogin login ,password ,default_database,login:要被创建的登录帐户。它是唯一必须给定值的参数,而且必须是

10、有效的SQL Server对象名。,password:新登录帐户的密码。,default_database:新登录帐户访问的默认数据库。,例1:创建一个登录帐户为abc,密码为123、使用的默认数据库为Student,EXEC sp_addlogin abc,123,Student,例2:创建登录名为”user01”,没有密码和默认数据库的用户,EXEC sp_addlogin user01, SQL Server登录帐户的查看,sp_helplogins, 登录帐户的删除,删除登录帐户时需要在数据库中做较为复杂的检查,以确保不会在数据库中留下孤儿型的用户。,sp_droplogin logi

11、n,login:要被删除的登录帐户。,9.2.3 用企业管理器创建、查看、删除SQL Server登录帐户, 启动SQL Server企业管理器。展开服务器后,展开“安全性”文件夹。,用右键单击登录(login)图标,从快捷菜单中选择新建登录(new login)选项,则出现SQL Server登录属性新建登录对话框。,在名称编辑框中输入登录名,在身份验证选项栏中选择新建的用户帐号是Windows NT认证模式,还是SQL Server认证模式。,选择服务器角色页框,选择数据库访问页框,列出了系统的固定服务器角色,列出了该帐号可以访问的数据库,2. 查看及删除登录帐户,一个新的登录帐户增加后,

12、可以在企业管理器中查看其详细信息。查看一个帐户的步骤如下:, 启动SQL服务器企业管理器,并展开到“安全性”。 点击“登录”,右边窗格显示的是登录帐户的列表。 右击该窗口中的某一登录帐户,在系统弹出的菜单上点击“属性”可进入“SQL登录属性”窗口查看该登录帐户的信息;点击“删除”可以删除该登录帐户。,9.3 用户管理,9.3.1 数据库用户名和登录名的关系 9.3.2 用T-SQL语句创建、查看、删除数据库用户 9.3.3 使用企业管理器创建、查看、删除数据库用户 9.3.4 改变数据库所有权,9.3.1 数据库用户名和登录名的关系,登录名、数据库用户名是SQL服务器中两个容易混淆的概念。,在

13、数据库中,一个用户或工作组取得合法的登录帐号,只表明该帐号通过了Windows NT认证或者SQL Server认证,但不能表明其可以对数据库数据和数据库对象进行某种或者某些操作,只有当他同时拥有了用户帐号后,才能够访问数据库。,登录名是访问SQL服务器的通行证。每个登录名的定义存放在master数据库的表syslogins中。登录名本身并不能让用户访问服务器中的数据库资源。,要访问特定的数据库,还必须有数据库用户名。新的登录创建以后,才能创建用户,用户在特定的数据库内创建,必须和一个登录名相关联。,用户的定义信息存放在与其相关的数据库的sysusers表中。这个表包含了该数据库的所有用户对象

14、以及和它们相对应的登录名的标识。用户名没有密码和它相关联。,大多数情况下,登录名和用户名使用相同的名称。,登录帐户和数据库用户是SQL服务器进行权限管理的两种不同的对象。,一个登录帐户可以映射到不同的数据库,产生多个数据库用户,一个数据库用户只能映射到一个登录帐户,允许数据库为每个用户对象分配不同的权限,这一特点为在组内分配权限提供了最大的自由度。,9.3.2 用T-SQL语句创建、查看、删除数据库用户,为一个登录帐户授权,最常使用的方法是创建一个新的数据库用户,然后将其与一个登录帐户对应起来。,1. 用T-SQL语句创建数据库用户,使用系统存储过程sp_grantdbaccess可以在当前数

15、据库中添加一个用户帐户,sp_grantdbaccess login , name_in_db,login:指定当前数据库中新安全帐户的登录名称。,name_in_db:指定数据库中用户帐户的名称。,例:在混合验证模式下,为数据库Student登录帐户abc创建一个同名的数据库用户。,use Student go exec sp_grantdbaccess abc,例:在混合验证模式下,为数据库Student登录帐户abc创建一个名称为userabc的数据库用户。,use Student go exec sp_grantdbaccess abc, userabc,2. 用T-SQL语句查看数据

16、库用户,使用系统存储过程sp_helpuser可以查看数据库中的有效帐户信息。,3. 用T-SQL语句删除数据库用户,当需要撤消某一登录用户对指定数据库的访问权限时,最简单的办法就是在该数据库中删除该登录用户在指定数据库中的用户账号,sp_revokedbaccess存储过程可以删除数据库用户,sp_revokedbaccess name_in_db = 名字,注意,sp_revokedbaccess 存储过程不能删除:,dbo、数据库中的固定角色 master和 tempdb 数据库中的Guest用户帐户 Windows NT组中的 Windows NT用户,sp_revokedbacces

17、s abc,例:使用命令sp_revokedbaccess将数据库中的“abc”删除掉。,9.3.3 使用企业管理器创建、查看、删除数据库用户,1. 使用企业管理器创建与查看数据库用户, 启动企业管理器。 展开要操作的服务器及要创建用户的数据库。 点击“用户”,右边窗格可以查看到该数据库的用户。 右击“用户”文件夹,选择“新建数据库用户”,弹出“新建用户”的窗口。 输入要创建的数据库用户的名字,然后在下拉的列表中选择对应的登录名。 单击“确定”按钮,将用户添加到数据库中。,2. 使用企业管理器删除数据库用户, 启动企业管理器。 展开要操作的服务器及要删除用户所在的数据库。 单击“用户”,右边显

18、示该数据库所有的库用户。 右击要删除的用户,在系统弹出的快捷菜单上选择“删除”来删除这个用户。,9.3.4 改变数据库所有权,在数据库中有一个用户是数据库所有者(database owner, dbo),拥有数据库中所有的对象.只能有一个数据库所有者.数据库所有者不能被删除.,通常,登录名s a映射在库中的用户是d b o.必须使用sp_changedbowner存储过程来改变数据库所有权.,这个存储过程是唯一改变数据库所有权的方法,在企业管理器中没有类似功能.,9.4 角色管理,用户一般在组中工作.也就是说可以将在相同数据上有相同权限的用户放入组中进理。,SQLServer具有将用户分配到组

19、中的能力,分配给组的权限也适用于组中的每一个成员,角色是从SQL Server 8.0版本开始引进的新概念,它代替了以前版本中组的概念,利用角色,SQL Server管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可以实现对所有用户权限的设置,SQL Server提供了用户通常管理工作的固定服务器角色和数据库角色。,1、服务器角色,服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级来把具有SQL Server管理职能的用户划分为不同的用户组,每一组所具有的管理SQL Server的权限都是SQL Server内置的,即不能对其进行添加、修改和删除,只能

20、向其中加入用户或者其他角色。,七种常用的固定服务器角色,系统管理员:拥有SQL Server所有的权限许可。 服务器管理员:管理SQL Server服务器端的设置。 磁盘管理员:管理磁盘文件。 进程管理员:管理SQL Server系统进程。 安全管理员:管理和审核SQL Server系统登录。 安装管理员:增加、删除连接服务器,建立数据库复制以及管理扩展存储过程。 数据库创建者:创建数据库,并对数据库进行修改。,执行存储过程sp_helpsrvrole,可查看服务器上的固定服务器角色,要查看某个固定服务器角色的权限可执行存储过程sp_srvrolepermission。,2. 为登录帐户指定及

21、收回服务器角色,使用sp_addsrvrolemember存储过程或企业管理器可为一个登录帐户指定服务器角色。, 使用系统存储过程为登录帐户指定及收回服务器角色:,sp_addsrvrolemember 登录,角色,? 登录:是指登录名。 ? 角色:是指服务器角色名。,收回服务器角色的系统存储过程sp_dropsrvrolemember,参数含义同上, 使用企业管理器为登录帐户指定及收回服务器角色,9.4.2 数据库角色,数据库角色分为固定数据库角色和自定义数据库角色。,1. 固定数据库角色及功能 在安装完SQL服务器后,系统将自动创建10个固定的数据库角色,角色 功能 public 维护默认

22、的许可 db_owner 数据库属主,在特定数据库内具有全部权限 db_accessadmin 能够添加、删除数据库用户和角色 db_securityadmin 可以管理全部权限、对象所有权、角色和角色成员资格 db_ddladmin 能够添加、删除和修改数据库对象。 db_backupoperator 能够备份和恢复数据库。 db_datareader 能够从任意表中读出数据。 db_datawriter 能够对任意表插入、修改和删除数据。 db_denydatareader 不允许从表中读数据。 db_denydatawriter 不允许改变表中的数据。,public角色是一个特殊的数据库

23、角色,数据库中的每位用户都是公众角色的成员,它负责维护数据库中用户的全部默认许可,不能将用户和组或角色指定公众角色。,数据库角色在数据库级别上被定义,存在于数据库之内。数据库角色存放在每个数据库sysusers表中 固定数据库角色不能被删除、修改、创建 固定数据库角色可以指定给其它登录帐户,注意:,用户自定义角色,创建用户定义的数据库角色就是创建一组用户,这些用户具有相同的一组许可,用户自定义的数据库角色有两种类型:即标准角色和应用程序角色。,标准角色和应用程序角色,标准角色通过对用户权限等级的认定而将用户划分为不用的用户组,使用户总是相对于一个或多个角色,从而实现管理的安全性。,应用程序角色

24、是一种比较特殊的角色。当我们打算让某些用户只能通过特定的应用程序间接地存取数据库中的数据而不是直接地存取数据库数据时,就应该考虑使用应用程序角色。当某一用户使用了应用程序角色时,他便放弃了已被赋予的所有数据库专有权限,他所拥有的只是应用程序角色被设置的角色。,sp_addrole:用来创建一个新的数据库角色 sp_addrole role,owner sp_droprole:用于删除一个数据库角色 sp_droprole role sp_helprole:显示当前数据库所有的数据库角色的所有信息 sp_helprole role sp_addrolemember:向数据库某一角色中添加数据库用

25、户sp_addrolemember role,security_account sp_droprolemember:用来删除某一角色的用户 sp_droprolemember role,security_account sp_helprolemember:用于显示某一数据库角色的所有成员 sp_helprolemember role,管理数据库角色,9. 5 权限(许可)管理,9.5.1 许可类型 9.5.2 许可的验证 9.5.3 管理许可,许可用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。 用户在登录到SQL Server之后,其用户帐号所归属的NT组或

26、角色所被赋予的许可(权限)决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。 在每个数据库中用户的许可独立于用户帐号和用户在数据库中的角色,每个数据库都有自己独立的许可系统。 在SQL Server中包括三种类型的许可:即对象许可、语句许可和预定义许可。,9.5.1三种许可类型,1、对象许可 表示对特定的数据库对象,即表、视图、字段和存储过程的操作许可,它决定了能对表、视图等数据库对象执行哪些操作。 2、语句许可 表示对数据库的操作许可,也就是说,创建数据库或者创建数据库中的其它内容所需要的许可类型称为语句许可。 3、默认(预定义)许可 是指系统安装以后有些用户和角色不必

27、授权就有的许可。,1. 默认许可 SQL服务器中包含很多对象,每个对象都有一个属主。一般来说,对象的属主是创建该对象的用户。 如果系统管理员创建了一个数据库,系统管理员就是这个数据库的属主。 如果一个用户创建了一个表,这个用户就是这个表的属主。 很显然,系统管理员具有这个数据库的全部操作权限,创建表的用户具有这个表全部操作权限。这就是数据库对象的默认许可。 默认许可也称为暗指许可。,2. 对象许可 对象许可是指用户基于数据库层次上的访问和操作权限,如果没有对象的许可,用户将不能访问该对象。对象许可有五种:查询、插入、修改、删除和执行。前四个许可是用于表和视图的,执行许可只用于存储过程。 选择:

28、该许可授予数据库中某个特定表的用户,具备这种许可的用户才能访问、操作该表的数据。 插入:该许可授予数据库中某个特定表的用户可以向表中插入数据。 更新:该许可授予数据库中某个特定表的用户可以对表中的数据进行更新。 删除:该许可授予数据库中某个特定表的用户可以删除表中的数据。 执行:该许可授予数据库中某个特定的用户,具有这种许可的用户可以执行存储过程。,3.语句许可 语句许可通常授予需要在数据库中创建对象或修改对象、执行数据库和事务日志备份的用户。如果一个用户获得某个语句的许可,该用户就具有了执行该语句的权力。 以下是需要进行许可设置的语句: BACKUP DTADBASE:允许用户执行备份数据库的操作。 BACK LOG:允许用户执行备份事务日志库的操作。 CREATE DATABASE:允许用户创建新的数据库。 CREATE DEFAULT:允许用户创建缺省。 CREATE PROCEDURE:允许用户执行创建存储过程的操作。 CTEATE FUNCTION:允许用户创建用户定义函数。 CREATE RULE:允许用户创建规则。 CREATE TABLE:允许用户创建表。 CREATE VIEW:允许用户创建视图。 语句许可授予用户执行相应命令的能力,语句许可适用于创建和删除对象、备份和恢复数据库。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1