系统安全管理.ppt

上传人:本田雅阁 文档编号:2396589 上传时间:2019-03-25 格式:PPT 页数:53 大小:1.74MB
返回 下载 相关 举报
系统安全管理.ppt_第1页
第1页 / 共53页
系统安全管理.ppt_第2页
第2页 / 共53页
系统安全管理.ppt_第3页
第3页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、1,第9章 系统安全管理,劳东青 信息工程学院 2011年6月,2,主要内容,9.1 SQL SERVER2008的安全机制,9.2 建立和管理用户账户,9.3 角色管理,9.4 数据库权限的管理,9.5 数据库架构的定义和使用,3,9.1 SQL SERVER的安全机制,SQL SERVER的安全管理体现在两个方面: 对用户登录进行身份验证。用户登录DBMS时,系统对用户的账户和口令进行验证,检查用户账户是否有效或能够访问DBS。 对用户进行的操作进行权限管理。用户登录DB时,只能对DB中的数据在允许的权限内进行操作。,4,SQL Server 的身份验证模式是指系统确认用户的方式。SQL

2、Server 身份验证模式有两种: Windows验证模式:用户登录Windows时进行身份验证,登录SQL Server时就不再进行身份。 注意:(1)采用Windows账户登录SQL Server,必须先将Windows账户加入到SQL Server中;(2)如果使用Windows账户登录到另一个网络的SQL Server,则必须在Windows中设置彼此的托管权限。 SQL Server验证模式: SQL Server服务器要对登录的用户进行身份验证。当采用混合模式时,SQL Server系统既允许使用Windows登录名登录,也允许使用SQL Server登录名登录。,9.1.1 SQ

3、L SERVER的身份验证模式,5,9.1.1 SQL SERVER的身份验证模式,6,SQL SERVER的安全性机制主要通过安全主体和安全对象来实现。 SQL SERVER有三个级别的安全性主体: 服务器级别:包含的安全对象有登录名、固定服务器角色等。其中,登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。 数据库级别:包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。 架构级别:包含的安全对象主要有表、视图、函数、存储过程、类型、同义词、聚合函数等。,9.1.2 SQL SERVER的安全性机制,7

4、,架构的作用是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。 数据库中的每一个用户都会有自己的默认架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默认架构为dbo。 数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。操作的权限则由数据库角色决定。 。,9.1.2 SQL SERVER的安全性机制,8,一个数据库使用者,要登录服务器上的SQL Server数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过如图所示的安全验证。,9.1.1 SQL SERVER的身份验证模式,9,SQL SERVER有两个常用的默认登录名:

5、 Sa,系统管理员,在SQL SERVER中拥有系统和数据库的所有权限。 计算机名Windows管理员帐户名: SQL SERVER为每个Windows系统管理员提供的默认用户帐户,在SQL SERVER中拥有系统和数据库的所有权限。,9.2 建立和管理用户帐户,10,建立Windows验证模式的登录名 创建Windows用户:单击控制面板|“性能和维护”|“管理工具”|“计算机管理”,进入“计算机管理”窗口,创建一个Windows用户 将Windows用户帐户加入到SQL SERVER中。,9.2.1 界面方式管理用户帐户,11,建立SQL SERVER验证模式的登录名 要创建SQL SER

6、VER验证模式的登录名,首先应将验证模式设置为混合模式。 建立登录名 验证登录名,9.2.1 界面方式管理用户帐户,12,管理数据库用户 登录名用于限制能不能登录SQL 服务器。若要限制访问数据库的权限,则必须通过用户帐户。 每一个用户帐户都关联一个登录名。一个登录名可以对应多个用户帐户。 登录名是服务器级的安全机制;用户帐户是数据库级的安全机制,具体到某一个数据库。 创建用户帐户,9.1.1 SQL SERVER的身份验证模式,13,创建登录名 (1)创建Windows身份验证模式登录名 sp_grantlogin 登录名称 说明: 创建windows登录名之前,首先要确认该windows用

7、户是否已创建。 Windows登录名必须用Windows域名限定,格式为“域名用户名”。此处的域名为本地计算机名。 只有sysadmin或securityadmin固定服务器角色的成员可以执行sp_grantlogin。,9.1.2 命令方式管理用户帐户,14,创建登录名 (2)创建SQL Server身份验证模式的登录名 sp_addlogin 登录名称, 登录密码 , 默认数据库, 默认语言 说明: SQL Server 登录名称和密码不能含有反斜线(); 不能是保留的登录名称,例如sa或public,或者已经存在的登录名称; 不能为NULL; 不能为空字符串()。,9.1.2 命令方式管

8、理用户帐户,15,【例1】为windows账户xx授予SQL SERVER登录访问权。 sp_grantlogin Ellaxx 【例2】创建SQL SERVER身份验证模式的登录账户sql_login,密码为123,默认登录数据库为master。 sp_addlogin sql_login,123,master,9.1.2 命令方式管理用户帐户,16,修改和删除Windows身份验证模式的登录名 (1)拒绝Windows账户访问SQL SERVER实例 sp_denylogin 域名用户名 说明: sp_denylogin只能和Windows账户一起使用; sp_denylogin和sp_g

9、rantlogin是对应的一对存储过程,分别用于拒绝和允许windows账户登录sql server实例。 (2)删除Windows身份验证模式的登录名 sp_revokelogin 域名用户名 说明:sp_revokelogin只能删除通过sp_grantlogin来创建的用户。,9.1.2 命令方式管理用户帐户,17,【例3】拒绝用户Ellaxx访问SQL SERVER实例。 sp_denylogin Ellaxx 【例4】删除Windows身份验证模式的登录名Ellaxx,废除其登录访问权。 sp_revokelogin Ellaxx,9.1.2 命令方式管理用户帐户,18,修改和删除S

10、QL SERVER身份验证模式的登录名 (1)修改SQL SERVER登录的密码 sp_password 旧密码, 新密码, 登录账户名 (2)删除SQL SERVER登录名 sp_droplogin 登录名称,9.1.2 命令方式管理用户帐户,19,【例5】将SQL SERVER登录账户sql_login的密码修改为456。 sp_password 123,456,sql_login 【例6】删除SQL SERVER登录账户sql_login。 sp_droplogin sql_login,9.1.2 命令方式管理用户帐户,20,创建和删除数据库用户 (1)创建数据库用户 sp_grantd

11、baccess 登录名,数据库用户名 说明:如果没有指定数据库用户名,则默认为与“登录名”相同 (2)删除数据库用户 sp_revokedbaccess 数据库用户名,9.1.2 命令方式管理用户帐户,21,【例7】为SQL SERVER登录账户sql_login创建一个同名的xscj数据库用户账户。 use xscj go sp_grantdbaccess sql_login 【例8】为Windows登录账户Ellass创建一个名为xscj_user的xscj数据库用户账户。 use xscj go sp_grantdbaccess Ellass, xscj_user 【例9】删除数据库用户

12、账户sql_login。 sp_revokedbaccess sql_login,9.1.2 命令方式管理用户帐户,22,角色是SQL SERVER中一类用户的统称。角色只有包含了用户后才有存在的意义 对一个角色授予、拒绝或废除的权限对该角色的任何成员也适合。 通过对角色进行权限设置,可实现对所有用户的权限设置,减少管理员的工作量。,9.3 角色管理,23,Sysadmin:系统管理员,可以在SQL Server中执行任何活动 Serveradmin:服务器管理员,可以设置服务器范围的配置选项,关闭服务器 Setupadmin:设置管理员,可以管理链接服务器和启动过程 Securityadmi

13、n:安全管理员,可以管理登录和CREATE DATABASE权限,还可以读取错误日志和更改密码 Processadmin:进程管理员,可以管理在SQL Server中运行的进程 Dbcreator:数据库创建者,可以创建、更改和除去数据库 Diskadmin:可以管理磁盘文件 Bulkadmin:可以执行BULK INSERT(大容量数据插入)语句,9.3.1 固定服务器角色,24,通过企业管理器为登录名指定服务器角色 右键单击登录名,选“属性” 通过系统存储过程sp_addsrvrolemember为登录名指定服务器角色 sp_addsrvrolemember loginame = 登录名,

14、 rolename = 角色名 【例10】为登录名sql_login指定dbcreator角色。 sp_addsrvrolemember sql_login,dbcreator,9.3.1 固定服务器角色,25,通过系统存储过程sp_dropsrvrolemember将登录名从服务器角色中删除 sp_dropsrvrolemember loginame = 登录名, rolename = 角色名 【例11】删除登录名sql_login的dbcreator角色。 sp_dropsrvrolemember sql_login,dbcreator,9.3.1 固定服务器角色,26,(1)db_own

15、er:数据库所有者,可执行数据库的所有管理操作。 (2)db_accessadmin:数据库访问权限管理者,角色成员具有添加、删除数据库使用者、数据库角色和组的权限。 (3)db_securityadmin:数据库安全管理员,角色成员可管理数据库中的权限,如设置数据库表的增加、删除、修改和查询等存取权限。 (4)db_ddladmin:数据库DDL管理员,角色成员可增加、修改或删除数据库中的对象。 (5)db_backupoperator:数据库备份操作员,角色成员具有执行数据库备份的权限。,9.3.2 固定数据库角色,27,(6)db_datareader:数据库数据读取者,角色成员可以从所

16、有用户表中读取数据。 (7)db_datawriter:数据库数据写入者,角色成员具有对所有用户表进行增加、删除、修改的权限。 (8)db_denydatareader:数据库拒绝数据读取者,角色成员不能读取数据库中任何表的内容。 (9)db_denydatawriter:数据库拒绝数据写入者,角色成员不能对任何表进行增加、删修、修改操作。 (10)public:特殊的数据库角色,每个数据库用户都是public角色的成员,因此不能将用户、组或角色指派为public角色的成员,也不能删除public角色的成员。通常将一些公共的权限赋给public角色。,9.3.2 固定数据库角色,28,通过企业

17、管理器为数据库用户指定固定数据库角色 选择数据库,展开,右击用户对象,单击“属性” 通过系统存储过程sp_addrolemember为数据库用户指定固定数据库角色 sp_addrolemember rolename = 角色, membername = DB用户或角色 【例12】为xscj数据库账户xx指定db_datareader角色。 use xscj go sp_addrolemember db_datareader, xx,9.3.2 固定数据库角色,29,使用系统存储过程删除固定数据库角色成员 sp_droprolemember rolename = 角色 , membername

18、= DB用户或角色 【例13】将xscj数据库账户xx从db_datareader角色中删除。 use xscj go sp_droprolemember db_datareader , xx,9.3.2 固定数据库角色,30,自定义角色包括标准的数据库角色和应用程序角色两种。 通过企业管理器来创建/删除自定义角色 通过命令来创建/删除自定义角色 创建标准数据库角色 sp_addrole 数据库角色名 创建应用程序角色 sp_addapprole 应用程序角色名 删除标准数据库角色 sp_droprole 数据库角色名 删除应用程序角色 sp_dropapprole 应用程序角色名,9.3.3

19、 自定义角色,31,权限决定了用户在数据库中可以进行的操作。 一个用户所拥有的权限取决于该用户账户的权限和该用户所在的角色。 SQL SERVER有三种类型的权限:对象权限、语句权限和暗示性权限。 对象权限:表示一个用户对特定的数据库对象,如表、视图、字段等的操作权限,如用户能否进行查询、删除、插入和修改一个表中的行,或能否执行一个存储过程。,9.4 数据库权限管理,32,SELECT、INSERT、UPDATE和DELETE语句权限,它们可以应用到整个表或视图中。 SELECT和UPDATE语句权限,它们可以有选择性地应用到表或视图中的单个列上。 SELECT权限,它们可以应用到用户定义函数

20、。 INSERT和DELETE语句权限,它们会影响整行,因此只可以应用到表或视图中,不能应用到列上。 EXECUTE语句权限,它们可以影响存储过程和函数。,对象权限,33,语句权限表示一个用户对数据库的操作权限,如能否执行创建和删除对象的语句,能否执行备份和恢复数据库的语句等。包括: BACKUP DATABASE。 BACKUP LOG。 CREATE DATABASE。 CREATE DEFAULT。 CREATE FUNCTION。 CREATE PROCEDURE。 CREATE RULE。 CREATE TABLE。 CREATE VIEW。,语句权限,34,暗示性权限指系统安装以后

21、有些用户和角色不必授权就有的权限。例如,sysadmin固定服务器角色成员自动继承在SQL Server安装中进行操作或查看的全部权限。 数据库对象所有者拥有暗示性权限,可以对所拥有的对象执行一切活动。例如,拥有表的用户可以查看、添加或删除数据,更改表定义,或控制允许其他用户对表进行操作的权限。,暗示性权限,35,暗示性权限是数据库角色和用户默认拥有的权限,不需设置。对象权限和语句权限可以进行设置。 设置权限包括: 授予权限:授予用户、组或角色的语句权限和对象权限,使数据库用户在当前数据库中具有执行活动或处理数据的权限。 拒绝权限:包括删除以前授予用户、组或角色的权限,停用从其他角色继承的权限

22、,确保用户、组或角色将来不继承更高级别的组或角色的权限。 废除权限:废除以前授予或拒绝的权限。废除类似于拒绝,因为二者都是在同一级别上删除已授予的权限。但是,废除权限是删除已授予的权限,并不妨碍用户、组或角色从更高级别继承已授予的权限。,设置权限,36,管理对象权限 右键单击数据库逻辑对象(包括表、视图、存储过程等),选择“所有任务|管理权限” 注意:打对号表示授予权限,打叉表示拒绝权限,取消选中表示废除权限。,使用企业管理器设置权限,37,管理语句权限 右键单击数据库,选择“属性”,使用企业管理器设置权限,38,管理用户权限 右键单击用户账户,选择“所有任务|管理权限”,使用企业管理器设置权

23、限,39,管理角色权限 右键单击角色,选择“属性”,使用企业管理器设置权限,单击进入角色权限设置界面,40,授予语句权限 GRANT ALL | 语句 , .n TO 安全账户 , .n 说明: 安全账户:当前数据库中的用户、角色或组,包括:SQL Server 角色;SQL Server用户;Windows NT组;Windows NT用户。 若权限被授予SQL Server角色或Windows NT组,权限可影响到当前数据库中该组或该角色成员的所有用户。 【例14】给用户xx授予创建表和创建视图的权限。 grant create table, create view to xx,使用Gra

24、nt语句设置权限,41,授予对象权限 GRANT ALL | 权限 ,.n ( 列名 ,.n ) ON 表 | 视图 | ON 表 | 视图 ( 列名 ,.n ) | ON 存储过程 | ON用户自定义函数 TO 安全账户 ,.n WITH GRANT OPTION AS 组 | 角色 ,使用Grant语句设置权限,42,参数说明: ALL:表示授予所有可用的权限。 权限:当前授予的对象权限。如在表、视图上可授予SELECT、INSERT、DELETE或UPDATE权限;在列上可授予SELECT和UPDATE权限。 安全账户:可以是SQL Server用户 、SQL Server角色、Wind

25、ows NT用户、Windows NT组。 WITH GRANT OPTION:使被授予权限的用户或角色拥有再将该权限授予其他用户的权限。 AS 组 | 角色:作为角色或组的成员使用角色或组的权限。,使用Grant语句设置权限,43,【例15】授予用户Mary、John和Tom对xx数据库的学生表的插入、修改、删除权限。 USE xx GRANT INSERT, UPDATE, DELETE ON 学生表 TO Mary, John, Tom 【例16】授予角色ss对xx数据库的课程表的插入、修改权限,并允许该角色用户将这些权限授予其他用户或角色。 USE xx GRANT INSERT, U

26、PDATE ON 学生表 TO ss with grant option,使用Grant语句设置权限,44,【例17】授予用户xx权限,使其对xx数据库的学生表的性别和姓名列具有修改权限。 use xx GRANT UPDATE(性别, 姓名) ON 学生表 TO xx 或: use xx GRANT UPDATE ON 学生表(性别, 姓名) TO xx,使用Grant语句设置权限,45,Deny语句用于拒绝用户或角色的语句权限和对象权限。 (1)拒绝语句权限 DENY ALL | 语句 , .n TO 安全账户 , .n 【例18】拒绝用户xx创建表和创建视图的权限。 DENY CREAT

27、E TABLE, CREATE VIEW TO xx,使用Deny语句,46,Deny语句用于拒绝用户或角色的语句权限和对象权限。 (2)拒绝对象权限DENY DENY ALL | 权限 ,.n ( 列名 ,.n ) ON 表 | 视图 | ON 表 | 视图 (列名 ,.n ) | ON 存储过程| 用户自定义函数 TO 安全账户 ,.n CASCADE ,使用Deny语句,拒绝安全账户的权限时,也将拒绝由安全账户授权的任何其他安全账户的权限。,47,【例19】拒绝角色ss对学生表的INSERT、UPDATE和DELETE的权限。 DENY INSERT, UPDATE, DELETE ON

28、 学生表 TO SS,使用Deny语句,48,Revoke语句用于废除语句权限和对象权限。 (1)废除语句权限 Revoke ALL | 语句 , .n From 安全账户 , .n 【例20】废除用户xx创建表和创建视图的权限。 Revoke CREATE TABLE, CREATE VIEW From xx,使用Revoke语句,49,Revoke语句用于废除语句权限和对象权限。 (2)废除对象权限 REVOKE GRANT OPTION FOR ALL | 权限 ,.n ( 列名 ,.n ) ON 表 | 视图 | ON 表 | 视图 ( 列名 ,.n ) | ON 存储过程 | 用户自

29、定义函数 TO | FROM 安全账户 ,.n CASCADE AS 组 | 角色 ,使用Revoke语句,50,参数说明: GRANT OPTION FOR:指定要收回WITH GRANT OPTION权限。用户仍然具有指定的权限,但是不能将该权限授予其他用户。 CASCADE:收回指定安全账户的权限时,也将收回由其授权的任何其他安全账户的权限。如果要收回的权限原先是通过WITH GRANT OPTION设置授予的,需指定CASCADE和GRANT OPTION FOR 子句,否则将返回一个错误。 AS 组 | 角色:说明要管理的用户从哪个角色或组继承权限。,使用Revoke语句,51,【例21】废除角色ss对学生表的INSERT、UPDATE和DELETE的权限。 REVOKE INSERT, UPDATE, DELETE ON 学生表 From ss 【例22】废除用户xx对学生表的性别和姓名列的修改权限。 REVOKE UPDATE(性别, 姓名) ON 学生表 From xx,使用Revoke语句,52,自习,9.5 数据库架构的定义和使用,53,SEE YOU NEXT TIME.,

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

当前位置:首页 > 其他


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