补充5_数据库安全性.ppt_第1页
补充5_数据库安全性.ppt_第2页
补充5_数据库安全性.ppt_第3页
补充5_数据库安全性.ppt_第4页
补充5_数据库安全性.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

数据库安全性 1 数据库安全性的定义 是指保护数据库中的各种数据 以防止因非法使用而造成数据的泄密和破坏 简单的说就是保护数据库以防止不合法的使用所造成的数据泄露 SQLSERVER的验证模式 验证模式分为 身份验证模式和登录验证模式内容包括 确认用户帐号是否有效 能否访问系统 能访问系统的哪些数据 身份验证方式 身份验证是指当用户访问系统时 系统对该用户的账号和口令的确认过程 SQLSERVER能识别两种类型的身份验证方式 WINDOWS身份验证方式 SQLSERVER身份验证方式 用户和客户机在连接SQL时 可任选其一 1 WINDOWS身份验证方式 用户身份由WINDOWS域建立 只要能登录WindowsNT 2000就可连接SQLSERVER 2 SQLSERVER身份验证 由SQLSERVER系统管理员定义SQL的登录帐号和密码 用户连接时必须提供帐号和口令 设置步骤 在 服务器 安全性 登录 中新建登录名 右键单击 服务器 选择 属性 安全性 标签 并设置 混合模式 以设置服务登录的帐户 右键单击 服务器 选择 编辑注册 选择 SQL身份验证 并输入登录名称及密码 登录验证机制 登录验证机制指当用户登录时 SQLSERVER采用什么系统来验证用户身份 1 NT验证模式 功能 指要登录到SQLSERVER系统的用户身份由NT系统来进行验证 此时无法以SQLSERVER帐号登录 特点 用户和组由WINDOWS管理及维护 数据库管理员的工作仅是管理数据库 WINDOWS具有很强的管理用户帐户的工具 可以在SQLSERVER增加用户组 2 混合安全模式 功能 指用户登录时 其身份由WINDOWS和SQLSERVER共同认证 适用对象 适合用于外界用户访问数据库或不能登录到WINDOWS域时使用 特点 混合模式允许非WINDOWS客户 Internet客户和混合的客户组连接到SQLSERVER 增加了安全性方面的选择 验证模式的设置 右键单击 服务器 选择 属性 安全性 标签 并设置适合的验证模式 登录管理 管理员可以从WINDOWS用户或用户组中创建登录帐号或者创建一个新的SQLSERVER登录帐号 登录帐号存储在主数据库的sysxlogins系统表中 在创建帐号过程中 管理员可以为每个用户指定一个默认数据库 系统管理员帐户 1 默认的系统管理员帐户 均具有SQLSERVER系统和所有数据库的全部权限 sa 特殊登录名 代表混合验证机制下SQLSERVER的系统管理员 其始终关联DBO用户 BUILTIN Administrator 是NT系统的系统管理员组 2 主要负责 创建登录名 配置服务器 创建 删除数据库 无须考虑所有权和权限 可以操作各种数据库对象 停止 启动服务器 停止在服务器上运行的无效过程 使用T SQL语言创建 查看 删除SQLSERVER登录帐户 SQL身份验证 创建登录帐户格式 SP addlogin 帐户名 新帐户密码 默认数据库 例 sp addlogin abc 123 teach查看登录帐户的信息 sp helplogins 帐户名 例 sp helploginsabc 若省略帐户名 则查看所有的帐户信息 删除登录帐户 删除一个登录帐户 必须确认该登录帐户无关联的用户存在于数据库系统中 即不存在孤儿型的用户 没有任何登录名与其映射 删除步骤 先删除用户 sp revokedbaccess 用户名 再删除帐户 sp droplogin 帐户名 注 不能删除系统管理者sa以及当前连接到SQL的登录 1 创建一个名为 seu 密码 12345 默认数据库为 teach 的SQL登录帐号 sp addlogin seu 12345 teach 注 此时未向该帐号授予访问teach数据库的权限因此暂不能登录SQL 2 查看该登录帐号的信息sp helplogins seu 3 删除该帐户sp droplogin seu 用企业管理器设置 服务器 安全性 登录 新建登录在弹出窗口的 常规 标签中 若选择WINDOWS身份验证 则需选择域名及域帐户 若选择SQLSERVER验证模式 则需输入登录帐户名 密码及确认密码 单击 服务器角色 授予该登录用户服务器范围内的权限 单击 数据库访问 指定该登录用户可以访问的数据库 用户管理 用户是基于数据库的名称 是和登录帐户相关联的 1 登录名和数据库用户名的关系 登录名是访问SQLSERVER的通行证 其本身并不能使用户访问服务器中的数据库 用户名是登录名在数据库中使用的名称 一个用户名必须和一个登录名相关联 登录帐户和数据库用户是SQLSERVER进行权限管理的两种不同的对象 一个登录帐户可与服务器上的所有数据库进行关联 产生多个数据库用户 但在一个数据库中只能拥有一个用户 而一个数据库用户只能映射到一个登录帐户 SQLSERVER允许数据库为每个用户对象分配不同的权限 为数据库用户授权的过程也就是为登录对象提供对数据库的访问权限的过程 用T SQL语句创建 查看 删除数据库用户 创建步骤 1 创建登录帐户 2 将登录帐户映射为数据库中同名的用户 1 在当前数据库中创建用户 sp grantdbaccess 登录名 当前数据库用户名 例 sp grantdbaccess abc abc1注 若省略 用户名 则创建一个和登录名同名的用户名 且一个登录名在同一数据库中只能创建一个用户 2 查看数据库用户 sp helpuser 用户名 注 省略用户名则查看所有用户信息 3 删除数据库用户 格式 sp revokedbaccess 用户名 注 该过程不能删除以下角色 用户 public角色 DBO 数据库中的固定角色 master和tempdb数据库中的guest用户帐户 WindowsNT组中的WindowsNT用户 例 为刚创建的 seu 帐号授予访问 teach 库的权限 即创建数据库用户 用户名称为 abcd UseteachGoSp grantdbaccess seu abcd 注 授予权限后就可利用该帐号登录SQL服务器了 用企业管理器设置数据库用户 服务器 数据库 目标数据库 用户 右键菜单中选择 新建数据库用户 然后在弹出窗口中进行设置 改变数据库所有权 一个数据库只能有一个数据库所有者 其不能被删除 默认情况下 sa帐户映射到库中的用户是dbo 改变所有权步骤 打开要更改所有权的数据库 更改所有权 sp changedbowner登录号注 若将所有权授予某个登录时 该登录不能在数据库中已存在用户 若存在则先删除用户后授予所有权 例 将teach的所有权授序seu帐号 useteachGoSp revokedbaccess abcd 先删除已有用户名gosp changedbowner seu 授予所有权给seu帐号 角色管理 1 定义 角色类似于组 一般将具有相同权限的一群用户群添加为某角色成员 然后给这个角色授予适当的权限 这样该用户群的所有用户就都具有了该角色的权限 而没有必要逐个对每一个用户去授予相同的权限2 优点 避免大量重复的工作 简化和方便对用户的管理 3 分类 服务器角色 是服务器级的一个对象 主要用于对登录名设置其对服务器的管理权限数据库角色 是数据库级的一个对象 主要用于对数据库用户设置其对数据库的管理权限注 同一用户可属于多个角色 固定服务器角色 SQL安装完成后 系统自动创建8个固定的服务器角色 对于服务器角色来说 数据库管理员只能完成以下两个操作 添加和删除服务器角色中的成员 而不能删除服务预定义的角色 1 固定服务器角色及功能 查看固定服务器角色sp helpsrvrole查看某个固定服务器角色的权限 sp srvrolepermission服务器角色 2 使用T SQL命令管理服务器角色 将登录帐户添加到服务器角色内 使其成为该角色的成员 sp addsrvrolemember 登录名 服务器角色名 注 角色设定好后 必须重启方能生效将某一登录者从某一服务器角色中删除 使其不再具有该角色权限sp dropsrvrolemember 登录名 服务器角色名 例 为 seu 登录授予固定服务器角色为 sysadmin 成功后再将其从该服务器角色删除 使其不再具有该角色权限 sp addsrvrolemember seu sysadmin 此时用seu重新连接后 可执行SYSADMIN的所有功能 GoSp dropsrvrolemember seu sysadmin Go 此时只有访问权限 数据库角色 数据库角色的作用域都只在其对应的数据库内 数据库角色分为固定数据库角色和自定数据库角色 一 固定数据库角色固定数据库角色的权限由系统固定 用户不能更改 其中PUBLIC角色是一个特殊的数据库角色 每位数据库用户都是该角色成员 主要负责维护数据库中用户的全部默认许可 不能将用户和组或角色指定为PUBLIC角色 注 数据库角色在数据库级别上被定义 存在于数据库之内 存储在每个数据库sysusers表中固定角色不能被删除 修改和创建固定数据库角色可指定给其他登录帐户 将固定数据库角色指定给其他用户格式 sp addrolemember 固定数据库角色名 用户名 将固定数据库角色指定给其他用户格式步骤 将数据库切换到需要指定角色的目标数据库中 为登录名在该数据库中添加用户 为用户指定固定数据库角色 例 为登录名seu分配固定数据库角色db datareader第一步 为登录名在数据库中授予用户Sp grantdbaccess seu abcd 第二步 为该用户分配固定数据库角色Sp addrolemember db datareader abcd 将用户从固定数据库角色中删除 sp droprolemember 固定数据库角色名 用户名 二 用户自定义数据库角色 自定义数据角色当打算为某些数据库用户设置相同的权限但预定义的数据库角色不能满足所实际要求的权限时 就通过自定义新数据库角色来满足这一要求 从而使这些用户能够在数据库中实现某一特定功能 1 特点 在同一数据数据库中用户或具有多个不同的自定义角色 可任意组合 角色可以进行嵌套 从而实现不同级别的安全性 2 分类 标准角色 通过对用户权限等级的认定而将用户划分为不同的用户组 使用户总是相对于一个或多个角色 从而实现管理的安全性 所有的预定义的数据库角色或SQL管理者自定义的某一角色都是标准角色 应用角色 当想让某些用户只能通过特定的应用程序间接地存取数据库中的数据而不是直接地存取数据库数据时就应该考虑使用应用角色 当某一用户使用了应用角色时 它便放弃了已被赋予的所有数据库专有权限 它所拥有的只是应用角色设置的权限 通过应用角色 能以可控制方式来限定用户的语句或对象权限 两者的区别 应用角色不像标准角色那样具有组的含义 因此不能包含成员 当用户在数据库中激活应用角色时 必须提供密码 而标准角色并不受口令保护 应用程序角色默认设置为未激活状态 要由其他标准角色激活后才能使用 用T SQL语言创建 删除标准角色 1 创建标准角色 Sp addrole 标准角色名 2 删除标准角色 Sp droprole 标准角色名 3 将数据库用户添加至标准角色中 Sp addrolemember 标准角色名 用户名 例 为teach库创建一个名为 role1 的标准角色 并为帐号 seu 创建一个用户 a1 要求将 a1 帐号添加至 role1 角色中 UseteachGoSp addrole role1 GoSp grantdbaccess seu a1 GoSp addrolemember role1 a1 go 用T SQL语言创建 删除应用角色 1 打开数据库2 创建应用角色 Sp addapprole 应用角色名 密码 3 删除标准角色 Sp dropapprole 应用角色名 4 为应用角色授予权限5 激活应用角色 Sp setapprole 应用角色名 密码 许可管理 在SQLServer中 每个对象都是用户所有的 对象的所有者由用户帐户 也称数据库用户标识符 标识 当创建对象时 可以访问该对象的惟一用户帐户就是所有者的用户帐户 对于任何想要访问该对象的其他用户 所有者必须给该用户授予访问权限 如果所有者只想让特定的用户访问该对象 可以只给这些特定的用户授予权限 将一个登录帐户映射为数据库中的用户帐户 并将该用户帐户添加到某种数据库角色中 其实都是为了对数据库的访问权限进行设置 以便让各用户进行适合于其工作职能的操作 1 权限的种类 在SQLServer中 权限分为三类 对象权限 ObjectPermission 语句权限 StatementPermission 隐含权限 ImpliedPermission 对象权限 是指用户对数据库中的表 视图 存储过程等对象的操作权限 相当于数据库操作语言 DML 的语句权限 例如是否允许查询 添加 删除和修改数据等 对象权限的具体内容包括以下3个方面 a 对于表和视图 是否允许执行Select Insert Update Delete语句 b 对于表和视图的字段 是否允许执行Select和Update语句 c 对于存储过程 是否允许执行Execute语句 语句权限 相当于数据定义语言 DLL 的语句权限 这种权限专指是否允许执行下列语句 CreateTableCreateDefaultCreateProcedureCreateRuleCreateViewBackupDatabaseBackupLogCreateFunction CreateDatabase 隐含权限 是指由SQLServer预定义的服务器角色 数据库所有者 dbo 和数据库对象所有者 dboo 所拥有的权限 隐含权限相当于内置权限 并不需要明确地授予这些权限 例如 服务器角色Sysadmin的成员可在整个服务器范围内从事任何操作 数据库所有者dbo可对本数据库进行任何操作 2 权限的管理 在上述三种权限中 隐含权限是由系统预定义的 这类权限是不需要 也不能够进行设置的 因此 权限的设置实际上就是指对象权限和语句权限的设置 权限可由数据库所有者和角色进行管理 权限管理的内容包括以下3个方面的内容 a 授予权限 Grant 即允许某个用户或角色对一个对象执行某种操作或某种语句 b 剥夺权限 Revoke 即不允许某个用户或角色对一个对象执行某种操作或某种语句 或者收回曾经授予的某种权限 这与授予权限正好相反 c 拒绝访问 Deny 即拒绝某个用户或角色访问某个对象 即使该用户或角色被授予这种权限 或者由于继承而获得这种权限 仍然不允许执行相应的操作 1 使用企业管理器管理数据库用户的权限 a 启动企业管理器 在 树 窗格中 展开该用户所在的数据库 单击 用户 节点 b 在内容窗格中右击想要设置权限的用户帐户 并从弹出菜单中选择 所有任务 管理权限 命令 c 在数据库用户权限管理对话框中 选择下列操作之一 若要授予用户对某个数据库对象的访问权限 请在对象列表中单击相应的方框 使其中出现 标记 若要剥夺用户对某个数据库对象的访问权限 请在对象列表中单击相应的方框 使该方框变成空白的 若要禁止用户对某个数据库对象的访问权限 请在对象列表中单击相应的方框 使其中出现 标记 d 单击 确定 或 应用 按钮 使所做的设置生效 2 使用企业管理器管理数据库角色的权限 a 启动企业管理器 在 树 窗格中 展开该角色所在的数据库 单击 角色 节点 b 在内容窗格中右击想要设置权限的数据库角色 并从弹出菜单中选择 属性 命令 c 在数据库角色属性对话框中 单击 权限 按钮 d 出现数据库角色权限管理对话框以后 在对象列表中单击适当的方框 以便授予 剥夺或禁止该角色对某个数据库对象的访问权限 d 单击 确定 或 应用 按钮 使所做的设置生效 3 使用T SQL语句管理语句的权限 在T SQL语言中 与权限管理有关的语句有以下三个 Grant语句 用于授予权限 Revoke语句 用于剥夺权限 Deny语句 用于禁止权限 语法为 Grant Deny ALL 语句名称 n TO用户帐户名称或角色名称 n RevokeALL 语句名称

温馨提示

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

评论

0/150

提交评论