《SQLServer安全管理》由会员分享,可在线阅读,更多相关《SQLServer安全管理(31页珍藏版)》请在金锄头文库上搜索。
1、Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 1Version No: 1.0Version No: 1.0第16章 SQL Server安全管理SQL Server 2000的安全机制SQL Server登录帐户管理数据库用户管理角色管理 权限管理堡柜谓眉肥处递慕杨科涡长丈逝闷沤枣踊霉蒸翼递升羞哇逛哪仔殖岳嫂徐SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of
2、 ITSoft (HZIEE) 2Version No: 1.0Version No: 1.0应知应知:SQL SERVER 2000 的安全验证模式的安全验证模式登录帐号,数据库用户的作用登录帐号,数据库用户的作用角色的概念和作用角色的概念和作用应会:应会:登录帐号和用户的创建以及权限设置和撤销登录帐号和用户的创建以及权限设置和撤销角色创建和授权角色创建和授权应知应会应知应会屿镀味胸酉霹旧窥取黍额我卫冀劫鸿袄惋讶有熊眩绚兑宵哇六骚臂缮孕夯SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE)
3、College of ITSoft (HZIEE) 3Version No: 1.0Version No: 1.0专业词汇专业词汇Authentication Mode 验证模式验证模式Security 安全安全Login account 登录帐号登录帐号User 用户用户Role 角色角色Object permission 对象权限对象权限Statement permission 语句权限语句权限Grant 授权授权Revoke 撤消撤消龟栅苏床疮惨足虽峨拿榆涧锑写咸蔷空膝船逊言幕营郴征韩尊蕾榴健西枯SQLServer安全管理SQLServer安全管理Copyright2006Copyrig
4、ht2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 4Version No: 1.0Version No: 1.0SQL Server 2000的安全机制的安全机制操作系统的安全性SQL Server服务器的安全性数据库的安全性数据库对象的安全性奇凳州去展睦触焚且候肝嘉挡裙橡明凋坍州技即舵鲸闷舒蓝梢哩吝婚绷邯SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 5Version
5、No: 1.0Version No: 1.0SQL Server验证模式验证模式SQL Server两种验证模式两种验证模式 1. 仅仅Windows 验证验证 2. SQL Server和和Windows的混合验证的混合验证设置安全认证模式设置安全认证模式呜犯渐甥俘拧贾揣坛扦凉慧淋碳皆狐乍祖拥槽呈边浊务频诧味市贾锈铰绒SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 6Version No: 1.0Version No: 1.0问题问题
6、1 赵老师当了赵老师当了g99402班的班主任,他要能班的班主任,他要能查到全校的课程信息以及本班学生的选查到全校的课程信息以及本班学生的选课信息,如何让他有权查到这些信息。课信息,如何让他有权查到这些信息。?椭哺抢肺蝶政冠绳荫铜们镐劳驴磕绘涯杖疽旱弊屉贿恒疹盐任毒搅熏荫崇SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 7Version No: 1.0Version No: 1.0安全管理安全管理一个用户要对某一个数据库进行操作一个用户
7、要对某一个数据库进行操作 ,必须,必须同时满足两个条件:同时满足两个条件:1)能连接到能连接到SQL Server服务器(连接权)服务器(连接权)2)有执行该操作的权限(访问权)有执行该操作的权限(访问权)蚀恶实壤茄初躺伶歌孔旗戳港玻水静名川们变肝荧炕洒冤垣卵夫筹圣地仕SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 8Version No: 1.0Version No: 1.0SQL Server登录帐户登录帐户管理管理必须有合法的登录
8、账号才能建立与必须有合法的登录账号才能建立与SQL Server的连接的连接一、一、使用使用SQL语言创建语言创建SQL Server登录帐户登录帐户1、语法:、语法:sp_addlogin 用户名用户名,密码密码,登录用户使登录用户使用的默认数据库用的默认数据库【例】【例】创建一个登录帐户:名为创建一个登录帐户:名为logzhao,密码为,密码为01,使,使用的默认数据库为用的默认数据库为mydb1EXEC sp_addlogin logzhao,01,mydb1另可以使用企业管理器创建登录帐户另可以使用企业管理器创建登录帐户饿梨悸红锑晶浴征隘簇垢妄胃综牺勤咽障因仍勋筷淡吱渝饼娄个啡枝矩插S
9、QLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 9Version No: 1.0Version No: 1.0二、查看登录帐户二、查看登录帐户sp_helplogins三、修改登录帐户三、修改登录帐户sp_defaultdb, sp_defaultlauguage, sp_password四、删除登录帐户四、删除登录帐户1、语法:、语法:sp_droplogin 帐户名帐户名例:例: sp_droplogin logzhao宠雇菜伯谱维淫
10、演荐息仲甸工妓釉陡策四晕吧梭留缉卜抢翁校蜗人梗蒂骸SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 10Version No: 1.0Version No: 1.0数据库用户管理数据库用户管理一、数据库用户名和登录名的关系一、数据库用户名和登录名的关系1、登录名是访问、登录名是访问SQL Server的通行证,但并不能访问服务的通行证,但并不能访问服务器中的数据库;器中的数据库;2、要访问特定的数据库必须要有用户名,用户名的信息存、要访问
11、特定的数据库必须要有用户名,用户名的信息存放在该数据库的放在该数据库的sysusers表中,用户名没有密码;表中,用户名没有密码;3、数据库用户名是一个登录帐户在某个数据库中的映射;数据库用户名是一个登录帐户在某个数据库中的映射;一个登录帐户可以同时与多个数据库发生关联;一个登录帐户可以同时与多个数据库发生关联;4、只有登录名创建完成后,才能为其创建数据库用户名。、只有登录名创建完成后,才能为其创建数据库用户名。佬渤和皖恿建陡庐拽诱箱粒硬褪哈花扇渺膀转蛆仆酸侥转抱题羔播姬碳酋SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College
12、of ITSoft (HZIEE) College of ITSoft (HZIEE) 11Version No: 1.0Version No: 1.0二、使用二、使用SQL语句创建数据库用户语句创建数据库用户1、语法:、语法:sp_grantdbaccess 登录名登录名 ,用户名用户名 【例】【例】在数据库中创建用户在数据库中创建用户dbuserzhao,对应的登录帐,对应的登录帐号是号是logzhao。use mydb1 exec sp_grantdbaccess logzhao, dbuserzhao 2、说明:、说明:(1)在执行本存储过程前,登录名必须已经存在;)在执行本存储过程前
13、,登录名必须已经存在;(2)一般情况下,登录名和用户名相同,所以第二个)一般情况下,登录名和用户名相同,所以第二个参数通常省略;参数通常省略;(3)在执行本存储过程前,首先确认当前使用的数据)在执行本存储过程前,首先确认当前使用的数据库是要增加用户的数据库;库是要增加用户的数据库;补妈无传抽逐蝶酱颐颅盏绝缝忘契拷具郎怪瓤佐助湍奴酞嘎阉诛匝汽援瞥SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 12Version No: 1.0Versio
14、n No: 1.0三、使用三、使用SQL语句查看数据库用户语句查看数据库用户 sp_helpuser四、使用四、使用SQL语句删除数据库用户语句删除数据库用户语法:语法:sp_revokedbaccess 用户名用户名例:例:sp_revokedbaccess dbuserzhao五、两个特殊数据库用户五、两个特殊数据库用户 1. dbo 2. guest窟梦碰旨苇耽呵疙痕核耍迈套匿斑里块僻应旗调氢践窍肩思营拿焚晰糠哗SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of
15、ITSoft (HZIEE) 13Version No: 1.0Version No: 1.0一、权限一、权限(Permission)类型类型:权限有三种类型:默认权限、对象权限和语句权限。权限有三种类型:默认权限、对象权限和语句权限。1、默认权限:也称为暗指权限。当数据库用户被分配到某一、默认权限:也称为暗指权限。当数据库用户被分配到某一角色后,这些数据库用户就获得了该角色的默认权限。角色后,这些数据库用户就获得了该角色的默认权限。2、对象权限:用户拥有对数据库对象的访问和操作权限。共、对象权限:用户拥有对数据库对象的访问和操作权限。共分为分为5种:种:(1)查询()查询(SELECT):拥
16、有对某个表的访问权限。):拥有对某个表的访问权限。(2)插入()插入(INSERT):可以向表中插入数据。):可以向表中插入数据。(3)修改()修改(UPDATE):可以对表中的数据进行更新。):可以对表中的数据进行更新。(4)删除()删除(DELETE):可以删除表中的数据。):可以删除表中的数据。(5)执行()执行(EXECUTE):可以执行存储过程。):可以执行存储过程。权限管理权限管理徒晌耶粘菜艰灵氰注拦肢趾翰一悔吏尚筑吉砂行股湘杖啊置眩帝韭高恨允SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft
17、(HZIEE) College of ITSoft (HZIEE) 14Version No: 1.0Version No: 1.03、语句权限:通常授予需要在数据库中创建或修改对象、执、语句权限:通常授予需要在数据库中创建或修改对象、执行数据库和事务日志备份的用户。如果一个用户获得了某个行数据库和事务日志备份的用户。如果一个用户获得了某个语句的权限,该用户就具有了执行该语句的权力。共包含语句的权限,该用户就具有了执行该语句的权力。共包含9种种权限:权限:(1)BACKUP DATABASE:备份数据库;:备份数据库;(2)BACKUP LOG:备份事务日志;:备份事务日志;(3)CREATE
18、 DATABASE:创建新的数据库;:创建新的数据库;(4)CREATE DEFAULT:创建缺省;:创建缺省;(5)CREATE PROCEDURE:创建存储过程;:创建存储过程;(6)CREATE FUNCTION:创建用户定义函数;:创建用户定义函数;(7)CREATE RULE:创建规则;:创建规则;(8)CREATE TABLE:创建表;:创建表;(9)CREATE VIEW:创建视图。:创建视图。鄙戴县卖痉撂乙醚顾患师槽韭生育园庆柯娶惹脓渍青晤意理沮淆拘攀招芭SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of
19、 ITSoft (HZIEE) College of ITSoft (HZIEE) 15Version No: 1.0Version No: 1.0二、权限的验证过程二、权限的验证过程:1、用户执行某项操作,相应的、用户执行某项操作,相应的SQL语句通过网络语句通过网络发送到发送到SQL Server服务器;服务器;2、SQL Server服务器收到服务器收到SQL语句,检查该用语句,检查该用户是否具有对操作对象的权限权限及执行这些语户是否具有对操作对象的权限权限及执行这些语句的权限;句的权限;3、如果、如果SQL Server服务器权限验证通过,服务器权限验证通过,SQL Server系统执
20、行相应的操作,否则,系统返回出系统执行相应的操作,否则,系统返回出错信息。错信息。交姚诞远羊拓餐扁阮吵譬淆扒撰虏陇操菇锈隋铣孜页贼吗熏另迅敏卞惦屋SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 16Version No: 1.0Version No: 1.0三、管理权限:三、管理权限:1、管理权限的用户:、管理权限的用户:(1)系统管理员:有)系统管理员:有sa帐户或具有相同权限的用户;帐户或具有相同权限的用户;(2)数据库属主:当前数
21、据库的拥有者;)数据库属主:当前数据库的拥有者;(3)对象的属主:当前对象的拥有者;)对象的属主:当前对象的拥有者;(4)数据库用户:不属于以上用户的其它用户。)数据库用户:不属于以上用户的其它用户。2、权限的状态:、权限的状态:(1)授予权限:授予允许用户帐户执行某些操作的语句权限和)授予权限:授予允许用户帐户执行某些操作的语句权限和对象权限;对象权限;(2)禁止权限:禁止某些用户或角色的权限。)禁止权限:禁止某些用户或角色的权限。(3)撤消权限:废除以前授予或禁止的权限。)撤消权限:废除以前授予或禁止的权限。授予、禁止和撤消权限只能在当前数据库中进行。授予、禁止和撤消权限只能在当前数据库中
22、进行。裤耐规吁德柯椿搭锚邵搅裙牺绪竖恰晾窗怂叔柱拽劳荡洗攻淡讥彻谭渣共SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 17Version No: 1.0Version No: 1.03、用、用SQL语句授予语句授予语句语句权限:权限:(1)语法:)语法:grant 权限权限 to 用户用户(2)例:)例:grant create table,create view to dbuserzhao 4、用、用SQL语句禁止语句禁止语句语句权限
23、:权限:(1)语法:)语法:deny 权限权限 to 用户用户(2)例:)例:deny create table to dbuserzhao 吓澡儿丹瘤势居鸭奄堤桃揖报踩腿旋屉虎颇别泊确迈手狼烤殃酶刨桐义虎SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 18Version No: 1.0Version No: 1.05、用、用SQL语句授予语句授予对象对象权限权限(1)语法:)语法:grant 权限权限 ON 数据库对象数据库对象 TO
24、 用户用户 WITH GRANT OPTION(2)例:)例: grant select on course to dbuserzhao6、用、用SQL语句禁止语句禁止对象对象权限权限(1)语法:)语法:deny 权限权限 ON 数据库对象数据库对象 TO 用户用户(2)例:)例: deny select on course to dbuserzhao翅俗诡吞平佬咱噎佬袄毕恩讥名墅捉载店釜阶索我奎减拓寺望字砰翰介胸SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of IT
25、Soft (HZIEE) 19Version No: 1.0Version No: 1.07、用、用SQL语句撤消对象权限:语句撤消对象权限:(1)语法:)语法:revoke 权限权限 on 数据库对象数据库对象 from 用户用户 例:例:revoke select on student from dbuserzhao 8、用、用SQL语句撤消语句权限:语句撤消语句权限:(1)语法:)语法:revoke 权限权限 from 用户用户 例:例:revoke create table from dbuserzhao绩壤莽战啡诗哇帕妥甫慧蛆纫喝询滚窗附君类逝方简阴棍妈歧笺眠望行拢SQLServer
26、安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 20Version No: 1.0Version No: 1.0问题问题1解决方法解决方法解决赵老师能查询本班学生的选课信息解决赵老师能查询本班学生的选课信息Create view g99402xk asSelect sname,cno,gradefrom student,scWhere student.sno=sc.sno and student.clno=g99402步骤步骤1.创建创建g99402班的
27、选课信息视图班的选课信息视图锋罢婪宙队眶良社事拂宋铰倚秀核爷寨抵揖谬浙牵旧翰饼继加解哭眺拦娩SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 21Version No: 1.0Version No: 1.0步骤步骤2.把访问该视图的权限授予赵老师把访问该视图的权限授予赵老师步骤步骤3.验证赵老师能否访问视图(以验证赵老师能否访问视图(以logzhao登登录)录)grant select on g99402xk to dbuserzhaoS
28、elect * from g99402xk朔只鼎恿哟座涌灼管嘶灯雅焉洞日漆跪浆漫饼雏仟评熄驶岁谴坪孔铃俞途SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 22Version No: 1.0Version No: 1.0 假如学校新增假如学校新增10个班主任,他们都要在学生表个班主任,他们都要在学生表中添加、修改和删除学生信息,要各个设置权中添加、修改和删除学生信息,要各个设置权限,方便吗?限,方便吗?问题问题2?杉韦烛指肉凡墟严嫂啪雨储
29、花腕沤城腹潞畦措忌肤澳赁晰畴等榴锋王胆碳SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 23Version No: 1.0Version No: 1.0一、角色一、角色 SQL Server 2000中,通过对相同权限的用户中,通过对相同权限的用户进行分组,然后再对组进行授权的方式来管理用进行分组,然后再对组进行授权的方式来管理用户的权限。而组是通过角色来实现的。角色分为:户的权限。而组是通过角色来实现的。角色分为:服务器角色和数据库角
30、色。服务器角色和数据库角色。 1、服务器角色:是服务器级的对象,只能包含、服务器角色:是服务器级的对象,只能包含登录名。登录名。2、数据库角色:是数据库级的对象,只能包含、数据库角色:是数据库级的对象,只能包含用户名。用户名。角色角色乳终赫泽卒咨堑昨扫地附浑掩筹按史汪桓吏砍贝心笼蝴晚害脂布貌瓦漏议SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 24Version No: 1.0Version No: 1.0二、固定服务器角色二、固定服务
31、器角色 1、固定服务器角色及功能(、固定服务器角色及功能(sp_helpsrvrole可浏览固定服务器角色)可浏览固定服务器角色)角色功能sysadmin能够执行任何任务securityadmin负责系统的安全管理,能够管理和审核服务器登录名serveradmin能够配置服务器的设置setupadmin能够安装、修复processadmin能够管理SQL Server系统的进程diskadmin能够管理磁盘文件dbcreator能够创建和修改数据库bulkadmin能够执行大容量数据的插入数据操作磋蹄甄逆贴泞孽抉浆炒召悔玄味躲铁饯贿涸炳家劲痞腺畜剂拜研毛御缀渠SQLServer安全管理SQLS
32、erver安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 25Version No: 1.0Version No: 1.02、为登录帐户指定服务器角色、为登录帐户指定服务器角色(1)语法:)语法:sp_addsrvrolemember 登录名登录名,服务器角色名服务器角色名 sp_addsrvrolemember lily,sysadmin3、为登录帐户收回服务器角色、为登录帐户收回服务器角色(1)语法:)语法:sp_dropsrvrolemember 登录名登录名,服务器角色名
33、服务器角色名 sp_dropsrvrolemember lily,sysadmin肛侍肉庆畅匀购辫矾兰磕肘戈樊施注致宵靠撰谎忽推捍钞惋踊瑞牲吼乃叠SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 26Version No: 1.0Version No: 1.0三、数据库角色三、数据库角色1、固定数据库角色及功能、固定数据库角色及功能角色功能db_owner数据库属主,在特定数据库内具有全部权限db_accessadmin能够添加、删除数据
34、库用户和角色db_securityadmin可以管理全部权限、对象所有权、角色和角色成员资格db_ddladmin能够添加、删除和修改数据库对象db_backupoperator能够备份和恢复数据库db_datareader能够从任意表中读出数据db_datawriter能够对任意表插入、修改和删除数据db_denydatareader不允许从表中读数据db_denydatawriter不允许改变表中的数据 (另见(另见P242 特殊的数据库角色特殊的数据库角色public)臭卖娄掘坊膀搐朱琵残蒋颠晰角箔阮竟旭章廷误寿哄唾八家寇戍戊笛望啸SQLServer安全管理SQLServer安全管理Co
35、pyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 27Version No: 1.0Version No: 1.02、为数据库角色添加成员、为数据库角色添加成员(1)语法:)语法: sp_addrolemember 角色名角色名,用户名用户名(2)例:)例:sp_addrolemember db_datareader,GUEST3、为数据库角色删除成员、为数据库角色删除成员(1)语法:)语法: sp_droprolemember 角色名角色名,用户名用户名(2)例:)例:sp_droprole
36、member db_datareader,GUEST4、查看固定数据库角色:、查看固定数据库角色:sp_helpdbfixedrole瞬灭躬野攻屯糜浚瑰口楔伶润超傅豁糙渊贵亏钳焕硬炼阔弧瞥关丸沽扮闸SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 28Version No: 1.0Version No: 1.0步骤步骤1:创建班主任角色:创建班主任角色 use mydb1 EXEC sp_addrole m_role步骤步骤2:对角色授权
37、:对角色授权步骤步骤3:创建各班主任登录:创建各班主任登录 sp_addlogin logteac1, 01 sp_addlogin logteac2, 02解决问题解决问题 grant select,delete,update,insert on student to m_role硒眶染狭酵边汐讶硫酞栈贵靠教桑燥腹泣显泉践狮吨宪疹原别诚搜募挚炭SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 29Version No: 1.0Versi
38、on No: 1.0步骤步骤5:使用户成为角色成员:使用户成为角色成员 sp_addrolemember m_role,dbuser1 sp_addrolemember m_role,dbuser2步骤步骤6: 验证插入权限验证插入权限步骤步骤4:创建各登录对应的用户:创建各登录对应的用户 sp_grantdbaccess logteac1, dbuser1 sp_grantdbaccess logteac2, dbuser2 insert into student(sno,sname,ssex,clno,sdept)values (99002,holly,女女, g99402,IS)撇掠乞婶
39、痕晓劝添陪澎撮新阀缓笨逮估凝彻肠涪忧博已嗅魏霄鸽揩疚坡养SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 30Version No: 1.0Version No: 1.0删除登录、用户、角色删除登录、用户、角色 sp_droplogin sp_dropuser sp_droprole企业管理器管理角色(创建角色、为角色授企业管理器管理角色(创建角色、为角色授权、添加用户等)权、添加用户等)删除删除藐渭慑坦赏泉忧花戈侣岂妇靛三载灭耳约阶咬窒
40、删缉狱押浑酉据扑饿靛兢SQLServer安全管理SQLServer安全管理Copyright2006Copyright2006College of ITSoft (HZIEE) College of ITSoft (HZIEE) 31Version No: 1.0Version No: 1.0登录管理登录管理使得可以连到数据库服务器使得可以连到数据库服务器用户管理用户管理使得可以连到数据库使得可以连到数据库权限管理权限管理对用户授权对用户授权角色管理角色管理权限的集合权限的集合本章小结本章小结卒争摸污云喀隔挨衍遁尖诌枪腆历辗蒂皆耳嘛倪油淳泪连诚其碳虾径后耕SQLServer安全管理SQLServer安全管理