第10章安全管理2.

上传人:今*** 文档编号:106902015 上传时间:2019-10-16 格式:PPT 页数:31 大小:799.50KB
返回 下载 相关 举报
第10章安全管理2._第1页
第1页 / 共31页
第10章安全管理2._第2页
第2页 / 共31页
第10章安全管理2._第3页
第3页 / 共31页
第10章安全管理2._第4页
第4页 / 共31页
第10章安全管理2._第5页
第5页 / 共31页
点击查看更多>>
资源描述

《第10章安全管理2.》由会员分享,可在线阅读,更多相关《第10章安全管理2.(31页珍藏版)》请在金锄头文库上搜索。

1、数据库原理与应用教程 (第2版),人民邮电出版社,第10章 安全管理,10.1 安全控制 10.2 SQL Server的安全控制 10.3 管理登录账户 10.4 管理数据库用户 10.5 管理权限 10.6 角色,第十章 安全管理,如何理解数据库的安全控制? 数据库的安全控制有哪些措施? 按操作权限的不同,数据库用户可分为几类? 用户要访问SQL Server数据库中的数据,需要经过几层认证? SQL Server的登录帐户有几种类型?分别是什么?如何设置? SQL Server的权限有几种?分别是什么? 何为数据库的角色?角色有什么作用?,安全控制,安全控制:在数据库应用系统的不同层次提

2、供对有意损害行为的安全防范。 有意的非法活动 有意的非法操作 无意的损坏,加密存取 身份验证 限制操作权限 提高系统可靠性 数据备份,安全控制模型,数据库用户的分类,系统管理员 在数据库服务器上具有全部的权限 对象拥有者 创建数据库对象的用户,对其所拥有的对象具有全部的权限。 普通用户 只具有对数据库数据的查询、插入、删除和修改的权限。,SQL Server的安全控制三层验证,是否是SQL Server的登录帐户 是否是该数据库的用户 是否有访问该表的权限,SQL Server登录账户来源和认证模式,1登录账户来源 Windows授权用户 SQL授权用户 2安全认证模式 Windows身份验证

3、模式 混合身份验证模式,Windows身份验证模式,允许Windows操作系统用户连接到SQL Server。 当使用Windows身份验证模式时,用户必须先登录到Windows操作系统中,然后再登录到SQL Server。 一般推荐使用Windows验证模式,这种安全模式能够与Windows操作系统的安全系统集成,以提供更多的安全功能。,混合模式,允许Windows授权用户和SQL授权用户登录到SQL Server数据库服务器。 如果希望非Windows操作系统的用户也能登录到SQL Server数据库服务器上,则应选择混合身份验证模式。,设置身份验证模式,步骤: 在SSMS的“对象资源管理

4、器”中,在要设置身份验证模式的实例上右击鼠标,从弹出的菜单中选择“属性”命令。 在“服务器属性”窗口左边的“选择页”上,单击“安全性”选项。,建立登录账户的T-SQL语句,CREATE LOGIN login_name WITH | FROM := WINDOWS WITH ,. := PASSWORD = password MUST_CHANGE , ,. := | DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language := DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = lang

5、uage,示例,例1创建Windows身份验证的登录账户。从Windows域账户创建 HYJWin_User2 登录账户。 CREATE LOGIN HYJWin_User2 FROM WINDOWS 例2创建SQL Server身份验证的登录账户。登录名为:SQL_User2,密码为:a1b2c3XY。 CREATE LOGIN SQL_User2 WITH PASSWORD=a1b2c3XY 例3创建SQL Server身份验证的登录账户。登录名为:SQL_User3,密码为:AD4h9fcdhx32MOP。要求该登录账户首次连接服务器时必须更改密码。 CREATE LOGIN SQL_U

6、ser3 WITH PASSWORD = AD4h9fcdhx32MOP MUST_CHANGE,10.4 管理数据库用户,10.4.1 建立数据库用户 10.4.2 删除数据库用户,建立数据库用户的T-SQL语句,CREATE USER user_name FOR | FROM LOGIN login_name 注意:如果省略FOR LOGIN,则新的数据库用户将被映射到同名的SQL Server登录名。,示例,例1.让SQL_User2登录账户成为students数据库中的用户,并且用户名同登录名。 CREATE USER SQL_User2 例2.创建名为SQL_JWC且具有密码的SQL

7、 Server身份验证的服务器登录名,并创建与此登录账户对应的数据库用户JWC。 CREATE LOGIN SQL_JWC WITH PASSWORD = jKJl3$nN09jsK84; CREATE USER JWC FOR LOGIN SQL_JWC;,特别说明,服务器登录账户与数据库用户是两个完全不同的概念。 具有登录账户的用户可以登录到SQL Server实例上,而且只局限在实例上进行操作。 数据库用户是登录账户以什么样的身份在数据库中进行操作,是登录账户在具体数据库中的映射,这个映射名(数据库用户名)可以和登录名一样,也可以不一样。,10.4.2 删除数据库用户,展开要删除用户的数

8、据库。 再展开该数据库下的“安全性” “用户”节点。 在要删除的用户名上右击鼠标,在弹出的菜单上选择“删除”命令。,删除数据库用户的T-SQL语句,DROP USER user_name 例3删除SQL_User2用户。 DROP USER SQL_User2 注意:不能删除拥有对象的用户。,10.5 管理权限,10.5.1 权限的种类 10.5.2 权限的管理,SQL Server权限种类,对象权限是用户在已创建的对象上行使的权限: DELETE,INSERT,UPDATE,SELECT,EXECUTE 数据权限是创建对象的权限: CREATE DATABASE/TABLE/VIEW/IND

9、EX/PROCEDURE BACKUP DATABASE/LOG 隐含权限是指由SQL Server预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限。隐含权限相当于内置权限,不需要再明确地授予这些权限。 如数据库拥有者自动具有对数据进行一切操作的权限。,权限的管理,授予权限:授予用户或角色具有某种操作权。 收回权限:收回(或撤消)曾经授予给用户或角色的权限。 拒绝访问:拒绝某用户或角色具有某种操作权限。一旦拒绝了用户的某个权限,则用户从任何地方都不能获得该权限。,用SSMS管理数据操作权限,在SSMS工具的“对象资源管理器”中,依次展开某数据库下的“安全性”“用户”,

10、 在某用户上右击鼠标,在弹出菜单中选择“属性”命令,弹出“数据库用户”窗口。 在此窗口中,单击左边“选择页”中的“安全对象”选项。,对用户授权的窗口1,对用户授权的窗口2,1.管理对象权限,授权语句 GRANT 对象权限名 , ON 表名|视图名|存储过程名 TO 数据库用户名 | 用户角色名 , 收权语句 REVOKE 对象权限名 , ON 表名|视图名|存储过程名 FROM 数据库用户名 | 用户角色名 , 拒绝语句 DENY对象权限名 , ON 表名|视图名|存储过程名 TO 数据库用户名 | 用户角色名 , ,示例,例1为用户user1授予Student表的查询权。 GRANT SEL

11、ECT ON Student TO user1 例3收回用户user1对Student表的查询权。 REVOKE SELECT ON Student FROM user1 例4拒绝user1用户具有SC表的更改权。 DENY UPDATE ON SC TO user1,2.管理语句权限,授权语句 GRANT 语句权限名 , TO 数据库用户名 | 用户角色名 , 收权语句 REVOKE 语句权限名 , FROM 数据库用户名 | 用户角色名 , 拒绝语句 DENY 语句权限名 , TO 数据库用户名 | 用户角色名 , ,示例,例5授予user1具有创建数据库表的权限。 GRANT CREAT

12、E TABLE TO user1 例7收回授予user1创建数据库表的权限。 REVOKE CREATE TABLE FROM user1 例8拒绝user1创建视图的权限。 DENY CREATE VIEW TO user1,10.6 角色,角色:为便于对用户及权限的管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。 角色的好处:方便管理。系统管理员只需对权限的种类进行划分,将不同的权限授予不同的角色,而不必关心有哪些具体的用户。,课堂练习,1.用T-SQL语句创建登录帐户teach1(SQL Server身份验证模式),用SSMS创建admin2

13、(Windows验证模式); 2.将teach1和admin2映射为Students(学生选课)数据库中的用户,用户名同登录名; 3.授予teach1具有Course表的查询权限,授予admin2具有Course表的插入权限; 4.用admin2建个新查询,分别执行以下语句,是否成功? INSERT INTO Course VALUES(C101,Java,2, 3); SELECT * FROM Course; 5.用teach1建个新查询,分别执行以下语句,是否成功? INSERT INTO Course VALUES(C102,C+,3, 4); SELECT * FROM Course.,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号