新编第4章数据库安全性课件_第1页
新编第4章数据库安全性课件_第2页
新编第4章数据库安全性课件_第3页
新编第4章数据库安全性课件_第4页
新编第4章数据库安全性课件_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 数据库安全性1第四章 数据库安全性问题提出数据库的一大特点是数据可以共享数据库系统中的数据共享不能是无条件的共享例: 军事秘密、国家机密、市场营销策略、销售计划、客户档案、银行储蓄数据数据共享必然带来数据库的安全性问题数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏2第四章 数据库安全性数据库中数据的共享是在DBMS统一严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一数据库的安全性和计算机系统的安全性,包括计算机硬件、操作系统、网络系统等的安全性,是紧密联系相互支持的3本章内容

2、4.1 SQL Server 2019的安全机制4.2 建立和管理用户账户4.3 权限管理4.4 角色管理4.5 数据库架构4本章内容4.1 SQL Server 2019的安全机制4.2 建立和管理用户账户4.3 权限管理4.4 角色管理4.5 数据库架构54.1 SQL Server 2019的安全机制SQL Server 2019的身份验证模式指系统确认用户的方式在SQL Server2019支持两种身份验证模式:Windows验证模式和SQL Server验证模式。64.1 SQL Server 2019的安全机制SQL Server 2019的身份验证模式Windows身份验证:用户

3、登录Windows时进行身份验证,登录SQL Server时不再进行身份验证。说明:必须将Windows账户加入到SQL Server中,才能采用Windows账户登录SQL Server。SQL Server身份验证:使用SQL Server中的帐号和密码来登录数据库服务器,而这些帐号和密码与Windows操作系统无关。74.1 SQL Server 2019的安全机制SQL Server 2019的安全性机制主要是通过SQL Server的安全性主体和安全对象来实现。SQL Server 2019的安全性主体有3个级别服务器级别数据库级别架构级别84.1 SQL Server 2019的安

4、全机制服务器级别安全对象:登录名和固定服务器角色等。登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQL Server 2019中的登录名包括Windows登录名和SQL Server登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。SQL Server登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。94.1 SQL Server 2019的安全机制数据库级别安全对象:用户和角色等。用户安全对象是

5、用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。创建登录名所对应的数据库用户,系统为该用户自动具有public角色。该用户登录数据库后只拥有一些公共的权限,如果想让该用户拥有一些特殊权限,可将其添加到相应的角色中。104.1 SQL Server 2019的安全机制架构级别安全对象:表、视图、函数和存储过程等。架构的作用是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。数据库中的每一个用户都会有自己的默认架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则

6、系统默认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。至于操作的权限则由数据库角色决定。例如,若某数据库中的表A属于架构S1,表B属于架构S2,而某用户默认的架构为S2,如果没有授予用户操作表A的权限,则该用户不能对表A执行相应的数据操作。但是,该用户可以对表B执行相应的操作。114.1 SQL Server 2019的安全机制一个数据库使用者,要登录服务器上的SQL Server数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过如图所示的安全验证。本章内容4.1 SQL Server 2019的安全机制4.2 建立和管理用户账户4.3 权限管理4.4

7、角色管理4.5 数据库架构124.2 建立和管理用户账户4.2.1 创建登录名4.2.2 删除登录名4.2.3 创建数据库用户4.2.4 删除数据库用户13144.2.1 创建登录名界面方式建立Windows验证模式的登录名建立SQL Server验证模式的登录名154.2.1 创建登录名命令方式 CREATE LOGIN login_name /*WITH子句用于创建SQL Server登录名*/ WITH PASSWORD = password HASHED MUST_CHANGE , ,. /*FROM子句用于创建其他登录名*/ | FROM WINDOWS WITH ,. | CERT

8、IFICATE certname | ASYMMETRIC KEY asym_key_name 164.2.1 创建登录名命令方式 := SID = sid | DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = ON | OFF | CHECK_POLICY = ON | OFF CREDENTIAL = credential_name := DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language174.2.1 创建登录名命令方

9、式:用于指定在创建SQL Server登录名时的一些选项,选项如下。SID:指定新SQL Server登录名的全局唯一标识符,如果未选择此选项,则自动指派。DEFAULT_DATABASE:指定默认数据库,如果未指定此选项, 则默认数据库为master。DEFAULT_LANGUAGE:指定默认语言,如果未指定此选项,则默认语言将设置为服务器的当前默认语言。CHECK_EXPIRATION:指定是否对此登录名强制实施密码过期策略,默认值为OFF。CHECK_POLICY:指定应对此登录名强制实施运行SQL Server的计算机的Windows密码策略,默认值为ON。 184.2.1 创建登录名

10、命令方式:用于指定在创建Windows登录名时的一些选项,选项如下。DEFAULT_DATABASE:指定默认数据库。DEFAULT_LANGUAGE:指定默认语言。194.2.1 创建登录名命令方式(1) 创建Windows验证模式登录名创建Windows登录名使用FROM子句,在FROM子句的语法格式中,WINDOWS关键字指定将登录名映射到Windows登录名,204.2.1 创建登录名命令方式例1 使用命令方式创建Windows登录名tao(假设Windows用户tao已经创建,本地计算机名为cie001) CREATE LOGIN cie001tao FROM WINDOWS;214

11、.2.1 创建登录名命令方式(2) 创建SQL Server验证模式登录名创建SQL Server登录名使用WITH子句,其中:PASSWORD:用于指定正在创建的登录名的密码,password为密码字符串。HASHED 选项指定在PASSWORD参数后输入的密码已经过哈希运算,如果未选择此选项,则在将作为密码输入的字符串存储到数据库之前,对其进行哈希运算。如果指定MUST_CHANGE选项,则SQL Server会在首次使用新登录名时提示用户输入新密码。224.2.1 创建登录名命令方式例2 使用命令方式创建SQL Server登录名sql_tao,密码为123456。 CREATE LOG

12、IN sql_tao WITH PASSWORD=123456 4.2 建立和管理用户账户4.2.1 创建登录名4.2.2 删除登录名4.2.3 创建数据库用户4.2.4 删除数据库用户23244.2.2 删除登录名语法格式DROP Login login_name例3 删除Windows登录名tao。 DROP Login cie001tao;例4 删除SQL Server登录名sql_tao。 DROP Login sql_tao;4.2 建立和管理用户账户4.2.1 创建登录名4.2.2 删除登录名4.2.3 创建数据库用户4.2.4 删除数据库用户25264.2.3 创建数据库用户界面

13、方式命令方式语法格式 CREATE USER user_name FOR | FROM LOGIN login_name 功能:向当前数据库添加用户例5 在student数据库中为登录账户sql_tao映射一个数据库用户u1。 CREATE USER u1 FOR LOGIN sql_tao;4.2 建立和管理用户账户4.2.1 创建登录名4.2.2 删除登录名4.2.3 创建数据库用户4.2.4 删除数据库用户27284.2.2 删除数据库用户语法格式DROP USER user_name例6 删除student数据库的数据库用户u1。 DROP USER u1;29本章内容4.1 SQL

14、Server 2019的安全机制4.2 建立和管理用户账户4.3 权限管理4.4 角色管理4.5 数据库架构304.3 权限管理某个用户对某类数据库对象具有何种操作权力是个政策问题而不是技术问题。数据库管理系统的功能是保证这些决定的执行。用户或DBA把授权决定告知系统,由SQL的GRANT和REVOKE语句来完成。DBMS把授权的结果存入数据字典。当用户提出操作请求时,DBMS根据授权定义进行检查,以决定是否执行操作请求。314.3 权限管理GRANT语句GRANT ,ON ,TO ,WITH GRANT OPTION;谁定义?DBA和表的建立者(即表的属主)功能:将对指定操作对象的指定操作权

15、限授予指定的用户。324.3 权限管理GRANT语句 GRANT , ON , TO , WITH GRANT OPTION;指定了WITH GRANT OPTION子句:获得某种权限的用户还可以把这种权限再授予别的用户没有指定WITH GRANT OPTION子句:获得某种权限的用户只能使用该权限,不能传播该权限334.3 权限管理GRANT语句例7把对S表和C表的全部权限授予用户U1和U2 GRANT ALL PRIVILEGES ON S TO U1,U2; GRANT ALL PRIVILEGES ON C TO U1,U2;344.3 权限管理GRANT语句例8把查询S表和修改学生学

16、号的权限授给用户U3,并允许他再将此权限授予其他用户 GRANT UPDATE(Sno), SELECT ON S TO U3 WITH GRANT OPTION;354.3 权限管理GRANT语句执行例8后,U3不仅拥有了对表S的SELECT权限和对学号列的修改权限,还可以传播此权限: GRANT UPDATE(Sno),SELECT ON S TO U4 WITH GRANT OPTION; 同样,U4还可以将此权限授予U5: GRANT UPDATE(Sno),SELECT ON S TO U5 但U5不能再传播此权限。364.3 权限管理REVOKE语句REVOKE ,ON ,FROM

17、 ,;谁定义?DBA和表的建立者(即表的属主)功能:从指定用户那收回对指定对象的指定权限374.3 权限管理REVOKE语句例9把用户U3修改学生学号的权限收回 REVOKE UPDATE(Sno) ON S FROM U3;384.3 权限管理DENY语句DENY ,ON ,TO ,;使用DENY命令可以拒绝给当前数据库内的用户授予的权限,并防止数据库用户通过其组或角色成员资格继承权限。394.3 权限管理DENY语句例10拒绝用户U1对学生表的查询权限 DENY SELECT ON S FROM U1;404.3 权限管理SQL灵活的授权机制DBA拥有对数据库中所有对象的所有权限,并可以根

18、据应用的需要将不同的权限授予不同的用户。用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。所有授予出去的权力在必要时又都可以用REVOKE语句收回。41本章内容4.1 SQL Server 2019的安全机制4.2 建立和管理用户账户4.3 权限管理4.4 角色管理4.5 数据库架构424.4 角色管理数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。角色的创建 CREAT

19、E ROLE 刚刚创建的角色是空的,没有任何内容。可以用GRANT为角色授权。434.4 角色管理给角色授权 GRANT ,. ON TO ,.DBA和用户可以利用GRANT语句将权限授予某一个或几个角色444.4 角色管理角色权限的收回 REVOKE ,. ON FROM , .用户可以回收角色的权限,从而修改角色拥有的权限REVOKE动作的执行者或者是角色的创建者,或者拥有在这个(些)角色上的ADMIN OPTION454.4 角色管理添加和删除角色成员 将数据库用户添加到角色中,使数据库用户拥有角色的权限使用存储过程SP_ADDROLEMEMBER将数据库用户从角色中删除,取消角色权限的

20、授予使用存储过程SP_DROPROLEMEMBER464.4 角色管理例11通过角色来实现将一组权限授予一个用户 1.首先创建一个角色R1 CREATE ROLE R1; 2.然后使用GRANT语句,使角色R1拥有S表的SELECT、UPDATE、INSERT权限 GRANT SELECT,UPDATE,INSERT ON S TO R1;474.4 角色管理例11通过角色来实现将一组权限授予一个用户 3.将这个角色授予王平,张明,赵玲。 EXEC SP_ADDROLEMEMBER R1, 王平 EXEC SP_ADDROLEMEMBER R1, 张明 EXEC SP_ADDROLEMEMBE

21、R R1, 赵玲 4.可以一次性的通过R1来回收王平的这3个权限 EXEC SP_DROPROLEMEMBER R1, 王平484.4 角色管理例12角色的权限修改 GRANT DELETE ON S TO R1 REVOKE SELECT ON S FROM R1通过角色的使用可以使自主授权的执行更加灵活、方便494.4 角色管理在SQL Server 2019中用户除了可以自己创建角色外,系统也提供了现有的一些角色。固定服务器角色是指在用户登录时授予的在服务器范围内的权限,这类角色可以在服务器上进行相应的管理操作,完全独立于某个具体的数据库。固定数据库角色应用于单个数据库,它能够授予用户帐户不同级别的管理或访问数据库及其对象的权限。504.4 角色管理固定服务器角色描述Bulkadmin块数据操作管理员,拥有执行块操作的权限Dbcreator数据库创建者,拥有创建数据库的权限Diskadmin磁盘管理员,拥有修改资源的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论