sqlserver安全问题.ppt_第1页
sqlserver安全问题.ppt_第2页
sqlserver安全问题.ppt_第3页
sqlserver安全问题.ppt_第4页
sqlserver安全问题.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

10.1 安全控制,安全性指保护数据库,防止不合法的使用所造成的数据泄漏、更改和破坏 安全性控制是数据库管理员(或系统管理员)的一个重要任务。,10.1.1 数据库安全控制的一般方法,身份验证 用户名和密码 访问控制 对用户访问数据库对象(表,存储过程、视图等)的权限(查询、插入、删除、修改)的控制 文件操作控制 操作系统下数据库文件的保护 数据加密存储 数据库中存储密文。查询时解密,比如密码是加密的,10.1.2 数据库权限的种类和用户的分类,数据库权限的分类 维护数据库管理系统的权限 备份、恢复 操作数据库管理系统的权限 创建、修改和删除数据库对象的权限 操作(查、插、删、改)数据库数据的权限 用户分类 Dba,最高权限 数据库对象拥有者 一般用户,DBMS安全模型,登录名,角色,权限,数据库对象,架构,用户名,数据库,权限层次结构,数据库验证主体是否对安全对象具有权限来控制安全,10.2 sqlserver的安全管理,身份验证 架构 用户管理 权限管理,10.2.1 三个认证过程,系统登录:登录sql server服务器,需要登录名 数据库访问:访问数据库,用户登录名要有对应的数据库用户账号。 数据操作:操作数据库中数据或对象时,数据库用户账号要有访问相应数据对象的权限,登录名和用户名关系,SQLSERVER把登录名与用户名的关系称为映射。用登录名登录SQLSERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中是否存在与此登录名关联的用户名,若存在就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库。 一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。一个登录可对应多个用户,一个用户也可以被多个登录使用。 好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库.登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。,10.2.2 sql server安全认证,Windows身份验证 Windows用户即可访问sql server 混合模式 即可使用windows身份验证,也可使用sql server身份验证。,10.3 架构,架构是存放数据库对象的容器 每个架构都有一个拥有者,每个用户都有一个默认架构。 一个完整的数据库对象名: 服务器名.数据库名.架构名.对象名 使用架构的优点 实现了多个对象作为一个集合的授权,更加灵活,10.2.3 创建架构,10.3 架构,架构既然是命名空间,那为什么我们访问一个表的时候,比如写类似于这种语句:SELECT * FROM Table1不需要制定架构名称呢(数据库中对象的全名称写法应该是:服务器名.数据库名.架构名.对象名)? 那是因为MS SQL内部解析的机制是这样的(你不写明架构名的话):第一步先在sys架构中找这个表,找不到就在默认架构中找,再找不到就跑到dbo架构中找。创建一个用户的时候,MS SQL都会让你选择一个默认架构,如果你不选的话,那就是dbo。,10.3 管理登录账户,安装sql server之后,系统会自动创建一些登录账户,sa是一个内置的登录账户 每个登录名的定义存放在master数据库的syslogins表中。 创建登录账户方法 Create login 使用SMSS SMO或系统存储过程,使用SMSS新建登录名,新建一个t1登录名,不关联账户,查看是否可以进入登录,是否可以查看数据库 新建t2登录名,关联到学生成绩管理系统数据库, 数据库会自动增加一个t2用户,成绩管理数据库下的对象,查看数据库中学生表、成绩表 练习:删除登录名,10.4 数据库用户,使用t2登录名在成绩管理数据库中创建用户u1(无法成功)。 断开连接,使用sa登录,在成绩管理数据库中创建用户t1,指定默认登录名t2(无法成功,已对应了t2用户名),指定默认登录名为t1。 练习:删除刚才建立的数据库用户,修改验证方式,10.5 权限,只有授权才能操作。 权限分类 对象权限:常见对象权限select,update,insert,delete,execute 语句权限:create datebase/table/view,backup dababase 隐含权限:预先定义的,比如固定的数据库角色权限。,10.5 权限,用户权限的管理 授予:grant,收回:revoke,拒绝:deny 面向单一用户权限的设置 面向数据库对象权限的设置 语句权限的设置 Create databaseproceduretable 等 Backup database等,建表,给用户添加建表权限 在用户权限窗口中除了要指定create table之外,还需要在指定更改/更改任意架构/控制权限才可以运行,权限的再授予,将e1对成绩表的更新权限再授予t1,成绩表右击属性-安全对象页上,10.6 角色,角色:一组具有相同或相似权限的用户构成的组 固定的服务器角色(在服务器-安全性-登录名中设置) bulkadmin:可以运行 BULK INSERT 语句。 dbcreator:可以创建、更改、删除和还原任何数据库。 diskadmin:管理磁盘文件。 processadmin:可以终止SQL Server实例中运行的进程。 securityadmin:管理登录名及其属性。它们可以GRANT、DENY和REVOKE服务器级和数据库级权限。可以重置SQL Server登录名的密码。 serveradmin:可以更改服务器范围的配置选项和关闭服务器。 setupadmin:添加和删除链接服务器,并且也可以执行某些系统存储过程。 sysadmin:可以在服务器中执行任何活动。,10.6 角色,固定的数据库角色 注意这个是在数据库-安全性-用户名中设置 用户自定义角色 创建 授权 添加和删除成员 用户和角色的权限问题,用户和角色的权限,最后用户的权限=用户权限 +用户角色权限 -用户拒绝权限 -角色拒绝权限 用户可以属于不同的角色, 则角色权限=角色1权限+角色2权限-角色1拒绝权限-角色2拒绝权限,新建登录名,对应数据库用户名 赋予权限 给用户赋予对象权限(包含数据库权限) 给角色赋予对象权限,然后把用户添加的角色中 给用户赋予架构权限 给角色赋予架构权限,然后把用户添加的角色中 给用户赋予数据库权限 给角色赋予数据库权限,然后把用户添加的角色中,作业,在本机sqlserver 2008中添加bank登录名,默认数据库loandb, 检验是否可以登录到loandb,具有什么权限? 以bank登录,看用户是否具有select bankt的权限,如没有,以sa身份为用户添加查询表bankt权限,作业,以bank用户建表,以bank用户查询legalEntityT表,看是否具有权限,如果无权限,则以sa身份为用户添加数据库的建表权限和选择权限,然后看是否可以建表,是否可查询legalEntityT表 添加登录名e1,对应用户名e1,查询loant,看是否具有权限?,作业,给public角色添加查看loant的权限,然后看e1是具有选择loant的权限 查看e1是否具有查询legalEntityT的权限,新建一个角色r1,添加用户e1,添加选择legalEntityT的权限,然后再看e1是否具有选择legalEntityT的权限 拒绝r1选择loant的权限,然后再用e1查询loant看是否可以查询,作业,为e1添加更新bankt表和授予更新bankt表的权限,然后添加新登录名、新用户名e2,将e1的此权限授予e2,用e2登录查看是否具有更新bankt表的权限 授予权限grant update on bankt to e2 收回权限revoke update on bankt from e2 将架构dbo的选择和更新权限授予角色r1,查看e1是否也同时具有了这个权限。,要求,掌握安全管理的概念 掌握数据库

温馨提示

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

评论

0/150

提交评论