数据库管理系统的安全功能-课件_第1页
数据库管理系统的安全功能-课件_第2页
数据库管理系统的安全功能-课件_第3页
数据库管理系统的安全功能-课件_第4页
数据库管理系统的安全功能-课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

第7章安全性1第7章安全性安全性概述SQLServer的安全控制其他安全问题27.1安全性概述37.1.1安全性措施的层次物理层人员层操作系统层网络层数据库系统层47.1.2数据库管理系统的安全功能安全性控制是数据库管理员(或系统管理员)的一个重要任务,他要充分利用数据库管理系统的安全功能,保证数据库和数据库中数据的安全。数据库关系管理系统的安全功能可以划分为用户管理和数据库操作权限管理两部分。安全系统的核心问题是身份识别。几个概念用户权限用户组角色57.1.3自主存取控制与强制存取控制对数据库对象的操作权限或存取控制分为自主存取控制强制存取控制6自主存取控制自主存取控制就是由用户(如数据库管理员)自主控制对数据库对象的操作权限,哪些用户可以对哪些对象、进行哪些操作,完全取决于用户之间的授权。目前大多数数据库管理系统都支持的是自主存取控制方式。7强制存取控制强制存取控制的思路是,为每一个数据库对象标以一定的密级(Classificationlevel),对每一个用户都确定一个许可级别(Clearancelevel)。如密级可以分为绝密、机密、保密、秘密、公开等若干级别;而用户可以划分为一级用户(可以操作所有数据)、二级用户(可以操作除绝密以外的所有数据)、三级用户等。强制存取控制本质上具有分层的特点,通常具有静态的、严格的分层结构,与现实世界的层次管理也相吻合。这种强制存取控制特别适合层次严明的军方和政府等数据管理。87.2SQLServer的安全控制SQLServer2005SQLServer的认证过程管理SQLServer的登录帐户管理数据库用户管理权限角色97.2.1SQLServer的认证过程连接权认证→访问权认证→操作权认证SQlServer服务器系统数据库操作权认证用户数据库1用户数据库2访问权认证√×用户数据库2连接权认证登录帐户A10

SQLServer的认证过程连接权认证

——管理SQLServer的登录帐户访问权认证

——管理数据库用户操作权认证

——管理权限117.2.2管理SQLServer的登录帐户功能登录帐户来源三种身份验证模式连接权认证步骤图用户的分类登录帐户的管理121.功能功能:用于连接权认证SQlServer服务器连接权认证登录帐户A登录帐户名?密码?132登录帐户的来源登录帐户主要来源Windows授权用户:来源于Windows的用户或组;SQL授权用户:来源于非Windows的用户,我们将这种用户称为SQL用户。143三种身份验证模式三种身份验证模式标准模式(也称为SQLServer登录模式)Windows身份验证模式混合验证模式15身份验证模式标准模式Windows身份验证模式混合模式16标准身份验证模式在这种模式下,由数据库管理系统独立来管理自己的数据库安全。数据库管理系统把用户登录的ID号和口令存储在特定的系统表中,当用户试图登录到数据库系统时,数据库管理系统查询有效的登录ID和口令,以决定是否允许用户登录。17身份验证模式标准模式Windows身份验证模式混合模式18Windows身份验证模式集成身份验证模式也称为Windows身份验证模式,用户通过WindowsNT或Windows2000(以下简称Windows)的身份验证后则自动进行SQLServer身份验证。即当用户通过Windows用户账户进行连接时,SQLServer通过回叫Windows以获得信息,重新验证账户名和密码。19SQLServer的安全体系图7-1SQLServer安全体系20身份验证模式标准模式集成模式混合模式21混合身份验证模式混合模式使用户得以使用Windows身份验证或SQLServer身份验证与SQLServer实例连接。22混合身份验证模式的登录决策过程23使用客户应用程序连接到SQLServer身份验证模式?混合模式SQLServer登录连接吗?WindowsNT身份验证模式WindowsNT账户连接吗?NONO有效登录?Yes密码正确?Yes连接许可?YesSQLServer接受连接YesYesNOSQLServer拒绝连接NOSQLServer拒绝连接NO4连接权认证步骤图245用户的分类系统管理员用户数据库管理员用户数据库对象用户数据库访问用户25建立新的登录帐户sp_addlogin[@loginname=]login_id--登录名称[,[@passwd=]passwd]--登录密码[,[@defdb=]defdb]--默认数据库[,[@deflanguage=]deflanguage]--默认语言[,[@sid=]sid]--安全标识号[,[@encryptopt=]encryption_option]--密码是否加密SqlServer2005里提供了Createlogin语句CREATELOGINlogin_name{WITH<option_list1>|FROM<sources>}26例:建立登录帐户建立登录帐户manager、test1sp_addloginmanager,123sp_addlogintest1,123操作员:系统管理员27例:建立登录帐户建立登录帐户test1Createlogintest1Withpassword='123'28修改登录密码sp_password[[@old=]old_password,]--旧登录密码{[@new=]new_password}--新登录密码[,[@loginame=]login]--登录名称或ALTERLOGINlogin_name{<status_option>|WITH<set_option>[,...]}

操作员:该登录账户29删除登录帐户sp_droplogin[@loginame=]login--登录名称或DROPLOGINlogin_name

操作员:系统管理员306管理SQLServer的登录帐户(1)建立新的登录帐户“LoginUser”系统管理员身份Sp_addlogin

LoginUser,abc已创建新登录316管理SQLServer的登录帐户登录帐户名登录帐户密码(2)以登录帐户LoginUser的身份来登录LoginUser***326管理SQLServer的登录帐户SQlServer服务器系统数据库学生库(用户数据库)用户数据库2连接权认证LoginUser访问权认证××?337.2SQLServer的认证过程连接权认证

——管理SQLServer的登录帐户访问权认证

——管理数据库用户操作权认证

——管理权限347.2.3

管理数据库用户功能数据库用户的管理351.

功能SQlServer服务器系统数据库学生库(用户数据库)用户数据库2访问权认证×连接权认证LoginUser×LoginUser的数据库用户√学生库(用户数据库)要访问哪个数据库,就必须在此数据库下建立与帐户相对应的数据库用户36授权登录用户为当前数据库用户sp_grantdbaccess[@loginame=]login[,[@name_in_db=]name_in_db]或CREATEUSERuser_name

[{{FOR|FROM}{LOGINlogin_name|CERTIFICATEcert_name|ASYMMETRICKEYasym_key_name}|WITHOUTLOGIN]

[schema_name]37授权某登录用户为数据库用户CREATELOGINtest3withpassword=‘123’Use订货管理CREATEUSERtest3userforlogintest3操作员:系统管理员383.管理数据库用户登录帐户数据库用户映射39从当前数据库中删除用户sp_revokedbaccess[@name_in_db=]name或DROPUSERuser_name

操作员:系统管理员403.管理数据库用户(1)在“学生库”下,为登录帐户“LoginUser”建立数据库用户“DbUser”Sp_grantdbaccess

LoginUser,DbUser已向’LoginUser’授予数据库访问权413.管理数据库用户(2)以登录帐户LoginUser的身份来登录LoginUser***423.管理数据库用户(3)访问学生库433.管理数据库用户(4)查询“学生库”中的“学生表”的全部信息思考能否对“学生”库进行操作?为什么?44SQlServer服务器系统数据库用户数据库2访问权认证连接权认证LoginUser×DBUser√学生库(用户数据库)无操作权LoginUser?3.管理数据库用户查询?添加数据?……45SQLServer的认证过程连接权认证

——管理SQLServer的登录帐户访问权认证

——管理数据库用户操作权认证

——管理权限

467.2.4权限管理授予权限授予语句权限

授予对象权限隐含授权收回权限禁止权限471授予权限——授予语句权限GRANT{ALL|statement_list}TOname_liststatement_list给出授权的语句列表,可以是:BACKUPDATABASEBACKUPLOGCREATEDATABASECREATEDEFAULT

CREATEFUNCTIONCREATEPROCEDURECREATERULECREATETABLECREATEVIEWP159481授予权限授予权限授予语句权限授予对象权限

查询授权收回权限禁止权限角色与存取控制491授予权限——授予对象权限处理数据或执行存储过程时需要有相应对象的操作或执行权限,这些权限可以划分为:SELECT、INSERT、UPDATE和DELETE语句权限,它们可以应用到整个表或视图上。SELECT和UPDATE语句权限,它们可以有选择性地应用到表或视图中的单个列上。INSERT和DELETE语句权限,它们会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。EXECUTE语句权限,即执行存储过程和函数的权限。501授予权限——授予对象权限GRANT

{ALL[PRIVILEGES]|permission_list}{[(column_list)]ON{table|view}

|ON{table|view}[(column_list)]

|ONstored_procedure

|ONuser_defined_function}TOname_list

[WITHGRANTOPTION][AS{group|role}]P160~161511授予权限授予权限授予语句权限授予对象权限查询授权

收回权限禁止权限角色与存取控制521授予权限——查询授权使用系统存储过程sp_helprotect查询授权的情况531授予权限(1)授予DbUser用户对学生表的查询权grantselecton

学生表toDbUser命令已经成功完成541授予权限(2)以登录帐户LoginUser的身份来登录LoginUser***551授予权限(3)查询“学生库”中的“学生表”的全部信息561授予权限SQlServer服务器系统数据库用户数据库2访问权认证连接权认证LoginUser×DBUser√学生库(用户数据库)查询成功577.2.4权限管理授予权限授予语句权限授予对象权限查询授权收回权限

禁止权限582收回权限收回语句授权REVOKE{ALL|statement_list}FROMname_list

收回对象授权REVOKE[GRANTOPTIONFOR]{ALL[PRIVILEGES]|permission_list}{[(column_list)]ON{table|view}

|ON{table|view}[(column_list)]

|ONstored_procedure

|ONuser_defined_function}FROMname_list

[CASCADE][AS{group|role}]P161~162597.2.4权限管理授予权限授予语句权限授予对象权限查询授权收回权限禁止权限

603禁止权限禁止语句权限DENY{ALL|statement_list}TOname_list

禁止对象权限DENY

{ALL[PRIVILEGES]|permission_list}{[(column_list)]ON{table|view}

|ON{table|view}[(column_list)]

|ONstored_procedure

|ONuser_defined_function}TOname_list

[CASCADE]61举例1、用sa登录sqlserver,建立登录用户test1Createlogintest1

Withpassword='123'2、用test1登录到sqlserver,访问订货管理数据库Use订货管理3、用sa登录sqlserver,指定用户test1可以访问当前数据库(订货管理)Use订货管理CREATEUSERDB1forlogintest14、用test1登录到sqlserver,访问订货管理数据库5、查询职工表里的数据。Select*from职工8、用sa登录sqlserver,给test1可以查询职工表的权限。Grantselecton职工toDB19、用test1登录到sqlserver,访问订货管理数据库,查询职工表里的数据成功失败失败成功62思考80个用户相同或相似的权限一个个授予权限么?637.2.5角色管理用户组和角色定义角色为数据库用户指定角色取消数据库用户的角色删除角色SqlServer的预定义角色64用户组和角色按用户分组:先定义用户组,然后按用户组管理权限;按职责划分角色:先定义权限,然后为用户指定角色。657.2.5角色管理用户组和角色定义角色

为数据库用户指定角色取消数据库用户的角色删除角色SqlServer的预定义角色66定义角色sp_addrole[@rolename=]role[,[@ownername=]owner]或CREATEROLErole_name

操作者:数据库管理员67举例:建立新角色operate在订货数据库下

CREATEROLEoperate68用户只能创建数据库一级的角色。697.2.5角色管理用户组和角色定义角色为数据库用户指定角色

取消数据库用户的角色删除角色SqlServer的预定义角色70为数据库用户指定角色sp_addrolemember[@rolename=]role,

[@membername=]user_account操作者:角色所有者71举例:指定DbUser为角色operate的成员切换到订货管理数据库sp_addrolememberoperate,Db1727.2.5角色管理用户组和角色定义角色为数据库用户指定角色取消数据库用户的角色

删除角色SqlServer的预定义角色73取消用户的角色sp_droprolemember[@rolename=]role,

[@membername=]user_account74例:取消DbUser的operate角色sp_droprolememberoperate,Db1757.2.5角色管理用户组和角色定义角色为数据库用户指定角色取消数据库用户的角色删除角色

SqlServer的预定义角色76删除角色sp_droprole[@rolename=]role或DROPROLErole_name

删除角色需要先删除角色的成员77举例DROPROLEoperate,DbUser错误:DROPROLEoperate正确:sp_droprolememberoperate,DbUserDROPROLEoperate787.2.5角色管理用户组和角色定义角色为数据库用户指定角色取消数据库用户的角色删除角色

SqlServer的预定义角色79SQLServer的预定义角色public角色系统预定义角色使用sp_helpsrvrole获得各种系统管理员角色的描述使用sp_srvrolepermission得到每种系统管理员角色的特定权限(可以执行的命令、系统存储过程或说明)数据库预定义角色使用sp_helpdbfixedrole获得数据库上各种预定义角色的描述使用sp_dbfixedrolepermission得到每种数据库预定义角色的特定权限(可以执行的命令、系统存储过程或说明)80public角色public角色是一个特殊的数据库角色,每个数据库用户都是该角色的成员。public角色具有如下特点:public角色自动获得数据库中用户的所有默认权限;不需要、也无法将用户指派给public角色,因为默认情况下所有用户都属于该角色;每个数据库(包括所有系统数据库和所有用户数据库)都有public角色;不可以删除public角色。81SQLServer的预定义角色public角色系统预定义角色使用sp_helpsrvrole获得各种系统管理员角色的描述使用sp_srvrolepermission得到每种系统管理员角色的特定权限(可以执行的命令、系统存储过程或说明)数据库预定义角色使用sp_helpdbfixedrole获得数据库上各种预定义角色的描述使用sp_dbfixedrolepermission得到每种数据库预定义角色的特定权限(可以执行的命令、系统存储过程或说明)82系统预定义角色sysadmin:具有系统管理员全部权限的角色。serveradmin:负责配置数据库服务器的设置。setupadmin:负责添加和删除链接的服务器。securityadmin:负责管理服务器的登录。processadmin:负责管理在SQLServer实例中运行的进程。dbcreator:负责创建和改变数据库。bulkadmin:可以执行BULKINSERT语句(数据库数据的装载)。83举例:指定manager用户为dbcreator

角色sp_addsrvrolemembermanager,dbcreatorsp_addsrvrolemember:将登录账户添加到固定服务器角色。84SQLServer的预定义角色public角色系统预定义角色使用sp_helpsrvrole获得各种系统管理员角色的描述使用sp_srvrolepermission得到每种系统管理员角色的特定权限(可以执行的命令、系统存储过程或说明)数据库预定义角色使用sp_helpdbfixedrole获得数据库上各种预定义角色的描述使用sp_dbfixedrolepermission得到每种数据库预定义角色的特定权限(可以执行的命令、系统存储过程或说明)85数据库预定义角色db_owner:在数据库中有全部权限,即具有数据库管理员全部权限的角色。db_accessadmin:负责数据库用户的管理。db_securityadmin:负责数据库的安全管理,如负责权限管理、角色和角色成员资格管理等。db_ddladmin:主要负责数据库的完整性和一致性检查及管理。db_backupoperator:主要负责数据库的备份。db_datareader:可以查询数据库中任何用户表中的所有数据。db_datawriter:可以更改数据库中任何用户表中的所有数据。db_denydatareader:不能查询数据库中任何用户表中的任何数据。db_denydatawriter:不能更改数据库中任何用户表中的任何数据。86举例:指定test1用户为当前数据库(订货管理)的db_owner角色Use订货管理CREATEUSERDB1forlogintest1sp_addrolememberdb_owner,Db187角色与权限的问题只要权限没有被拒绝过,则角色中的成员的权限就是角色的权限加上它们自己所具有的权限。如果某个权限在角色中是拒绝的,则角色中的成员将不能再拥有此权限,即使为此成员授予了此权限。88角色与权限的问题假设用户user为角色role的成员权限为:对表x的查询权role授予收回禁止授予收回禁止授予收回禁止user授予授予授予收回收回收回禁止禁止禁止user的实际权限√√×√×××××89综合举例1、Createlogintest2withpassword=‘123'Createlogintest3withpassword=‘123'2、Use订货管理CREATEUSERDB2forlogintest2CREATEUSERDB3forlogintest390综合举例3、禁止Db3查询(订购单)表DENYSELECTON订购单TODB34、建立新角色operaterCreateroleoperater5、授权角色operater可以对供应商和订购单表进行查询和更新GRANTSELECT,UPDATEON供应商TOoperaterWITHGRANTOPTIONGRANTSELECT,UPDATEON订购单TOoperaterWITHGRANTOPTION91综合举例6、指定Db3为角色operate的成员sp_addrolememberoperater,Db37、Db3尝试对订购单表进行查询8、授权DB3可以订购单表进行查询GRANTSELECTON订购单TODb39、再次尝试Db3对订购单表进行查询失败成功92综合举例10、Db3授权Db2可以查询供应商表GRANTSELECTON供应商TODb2GRANTSELECTON供应商TODb2ASoperater11、test2查询仓库表12、test2查询供应商表失败成功失败成功93综合举例13、从operate角色收回授权的权限REVOKEGRANTOPTIONFORSELECT,UPDATEON订购单FROMoperateCASCADE14、Db2查询订购单表15、Db3查询订购单表select*from订购单失败成功94练习:下面说法错误的是____。1、只要权限没有被拒绝过,则角色中的成员的权限就是角色的权限加上它们自己所具有的权限。2、如果某个权限在角色中是拒绝的,则角色中的成员就不能再拥有此权限,即使为此成员授予了此权限。3、如果某个权限在角色中是拒绝的,但是角色中的成员被授予了此权限,则此成员就可以拥有此权限。4、如果某个权限在角色中是允许的,虽然角色中的成员被收回了此权限,但是此成员仍可以拥有此权限。395练习下面说法正确的是____。1、角色中的成员的权限总是角色的权限加上它们自己所具有的权限。2、如果某个权限在角色中是拒绝的,则角色中的成员就不能再拥有此权限,即使为此

温馨提示

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

评论

0/150

提交评论