1 / 33

第 8 章 数据库系统的安全性管理

第 8 章 数据库系统的安全性管理. 教学内容: SQL Server 安全控制机制 SQL Server 登录账户管理 SQL Server 管理数据库用户 SQL Server 管理权限 SQL Server 角色管理 SQL Server 安全性管理的途径. 8.1 SQL Server 安全控制机制. 8.1.1 数据库系统的安全控制模型. 8.1.2 数据库权限和用户分类. 对数据库管理系统正常运行而进行的维护权限 对数据库中的对象和数据的操作权限 对数据库对象的权限 对数据库数据的操作权 用户按其操作权限的大小可分为

drake-ayers
Download Presentation

第 8 章 数据库系统的安全性管理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 数据库系统的安全性管理 教学内容: • SQL Server安全控制机制 • SQL Server登录账户管理 • SQL Server管理数据库用户 • SQL Server管理权限 • SQL Server角色管理 • SQL Server安全性管理的途径

  2. 8.1 SQL Server安全控制机制 • 8.1.1 数据库系统的安全控制模型

  3. 8.1.2 数据库权限和用户分类 • 对数据库管理系统正常运行而进行的维护权限 • 对数据库中的对象和数据的操作权限 • 对数据库对象的权限 • 对数据库数据的操作权 • 用户按其操作权限的大小可分为 • 数据库系统管理员 • 数据库对象拥有者 • 普通用户

  4. 8.1.3 SQL Server的安全机制 • 建立在认证和访问许可机制上的 • 身份验证 • 访问权验证 • 操作权验证 • SQL Server登录账户的来源有两种: • Windows授权用户:来自于Windows的用户或组; • SQL授权用户:来自于非Windows的用户,我们也将这种用户称为SQL用户。

  5. 1.Windows身份验证模式

  6. 2.SQL Server身份验证模式 • 用户在连接SQL Server 时必须提供登录名和登录密码,这些登录信息存储在系统表syslogins 中,与NT 的登录账号无关 。

  7. 3.混合验证模式

  8. 8.1.4 设置SQL Server的认证模式

  9. 8.2 管理SQL Server登录账户 • 有两类登录账户 • 一类是由SQL Server自身负责身份验证的登录账户; • 另一类是登录到SQL Server的Windows NT/2000网络账户,可以是组账户或用户账户。

  10. 8.2.1系统的登录账户

  11. 8.2.2管理登录账户

  12. 2.使用系统存储过程管理登录账户 • sp_addlogin:创建新的使用SQL Server 认证模式的登录账号; • sp_revokelogin:删除账户,但不能删除系统管理者SA以及当前连接到SQL Server的登录。如果与登录相匹配的用户仍存在数据库sysusers表中,则不能删除该登录账号。 • sp_addlogin和sp_droplogin只能用在SQL Server认证模式下。 • sp_denylogin:拒绝某一用户连到SQL Server上。 • sp_granlogin:设定windows用户或组成员为SQL Server用户。sp_granlogin和sp_revokelogin只有使用于NT认证模式下对NT用户或用户组账号做设定,而不能对SQL Server维护的登录账号进行设定。 • sp_droplogin:删除登录SQL Server账户,禁止该用户访问。 • sp_helplogins:用来显示所有登录到SQL Server账户的信息。

  13. 8.3 管理数据库用户 • 8.3.1数据库用户简介 • 数据库用户用来指出哪一个人可以访问哪一个数据库。 • 用户对数据的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的,用户账号总是基于数据库的。 • 用户账号和登录账号 • 用户账号只表明该账号通过了NT 认证或SQL Server 认证,但不能表明其可以对数据库数据和数据对象进行某种或某些操作,所以一个登录账号总是与一个或多个数据库用户账号(这些账号必须分别存在相异的数据库中)相对应,这样才可以访问数据库。

  14. 8.3.2管理数据库用户

  15. 2.使用系统存储过程管理数据库用户 • SQL Server 利用以下系统过程管理数据库用户 • sp_adduser、sp_granddbaccess :创建新数据库用户。 • sp_dropuser、sp_revokedbaccess :删除数据库用户。 • sp_helpuser:查看用户和数据库角色的信息。

  16. 8.4 管理权限 1.对象权限 • 对象权限是指用户对数据库中的表、视图、存储过程等对象的操作权,如: • 对表和视图,可以使用SELECT、INSERT、UPDATE和DELETE权限。 • 对于表和视图的字段;可以使用SELECT和UPDATE权限。 • 对于存储过程;可以使用EXECUTE权限。 2.语句权限 • 语句权限相当于数据定义语言(DDL)的语句权限,这种权限专指是否允许执行下列语句:CREATETABLE、CREATEPROCEDURE、CREATEVIEW等与创建数据库对象有关的操作。 3.隐含权限 • 隐含权限是指由SQL Server预定义的服务器角色、隐含权限相当于内置权限,而不再需要明确地授予这些权限。例如,数据库拥有者自动地拥有对数据库进行一切操作的权限。

  17. 8.4.2权限的管理 • 权限的管理包含如下三个内容; • 授予权限(GRANT):允许用户或角色具有某种操作权。 • 收回权限(REVOKE):不允许用户或角色具有某种操作权,或者收回曾经授予的权限。 • 拒绝访问(DENY):拒绝某用户或角色具有某种操作权,既使用户或角色由于继承而获得这种操作权,也不允许执行相应的操作。

  18. 1.使用企业管理器管理对象权限

  19. 2.使用企业管理器管理语句权限

  20. 8.5 管理角色 • 具有相同权限的用户就称为角色。 • 角色分为: • 系统预定义的固定角色 • 用户根据自己的需要定义的用户角色 • 系统角色又根据其作用范围的不同而被分为: • 固定的服务器角色,是为整个服务器设置的 • 固定的数据库角色,是为具体的数据库设置的。

  21. 8.5.1 固定的服务器角色

  22. 1.查看固定的服务器角色

  23. 2.添加固定的服务器角色的成员

  24. 8.5.2 固定的数据库角色

  25. 8.5.3 用户自定义角色 • 为某些数据库用户设置相同的权限,但这些权限不等同于预定义的数据库角色所具有的权限。 • 用户自定义的数据库角色具有以下几个优点: • SQL Server 数据库角色可以包含NT 用户组或用户; • 在同一数据库中用户可以具有多个不同的自定义角色,这种角色的组合是自由的,而不仅仅是public 与其它一种角色的结合; • 角色可以进行嵌套,从而在数据库实现不同级别的安全性。

  26. 用户定义的数据库角色有两种类型 • 标准角色 • 它通过对用户权限等级的认定而将用户划分为不同的用户组,使用户总是相对于一个或多个角色,从而实现管理的安全性。 • 应用程序角色 • 让某些用户只能通过特定的应用程序间接地存取数据库中的数据(比如通过Microsoft Excel) 而不是直接地存取数据库数据时,我们就应该考虑使用应用程序角色。

  27. 1.创建用户自定义的角色

  28. 2.为用户定义的角色授权

  29. 8.6 SQL Server安全性管理的途径 • 使用视图作为安全机制 • 使用存储过程作为安全机制

  30. 8.6.1 使用视图作为安全机制 1.使用行级、列级别安全性的视图 • 例8-1: 在该例中某一销售点只能查看它自己的销售信息。我们使用pubs 数据库中的sales 表。 • 首先创建视图: USE pubs CREATE VIEW vwSpecificsale AS SELECT ord_num, ord_date, qty, payterms, title_id FROM sales WHERE stor_id = ‘7067’ • 当执行SELECT * FROM vwSpecificsale时只显示stor_id = ‘7067’的部分数据,把其他的数据屏蔽了,来保证其他数据安全。

  31. 2.视图与权限结合 • 将访问视图的权限授予给用户,这样即使该用户不具有访问视图所引用的基本表的权限,但其仍可以从中查看相应的数据信息。

  32. 8.6.2 使用存储过程作为安全机制 • 让该用户具有存储过程的EXEC 权限就可以了。当然要确保该存储过程中包含了查询语句。比如可创建下面的存储过程: create procedure selsales as select * from sales • 然后将存储过程的EXEC 权限授予用户,当用户执行该存储过程时就可以查看到相应信息。

  33. 8.7 小 结 • SQL Server 2000将权限的认证过程分为三步:第一步是验证用户是否是合法的服务器的登录账户;第二步是验证用户是否是要访问的数据库的合法用户;第三步是验证用户是否具有适当的操作权。

More Related