Server安全管理.ppt_第1页
Server安全管理.ppt_第2页
Server安全管理.ppt_第3页
Server安全管理.ppt_第4页
Server安全管理.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

第14章SQLServer安全管理 14 1SQLServer2000的安全机制14 2管理服务器的安全性14 3管理数据库用户14 4管理角色14 5管理权限 合理有效的数据库安全机制可以既保证被授权用户能够方便地访问数据库中的数据 又能够防止非法用户的入侵 SQLServer2000提供了一套设计完善 操作简单的安全管理机制 14 1SQLServer2000的安全机制 SQLServer2000的安全性机制由四层构成 可以用图14 1表示 从用户的角度讲 要访问数据库 需经过如下步骤 图14 1SQLServer2000的安全性机制 1 一个数据库用户必须有权登录操作系统 即该用户在Windows2000Server操作系统中具有登录账户 在这个前提条件下 才有可能进入SQLServer2000系统 2 一旦登录了操作系统 登录者还必须得到数据库系统的通行证 数据库服务器的登录账户 才具有数据库服务器的连接权或登录权 SQLServer2000只有在验证了指定的登录账户有效后 才完成连接 这种对登录账户的验证称为身份验证 对用户而言 登录SQLServer2000需要使用以下两类身份验证之一 Windows身份验证 此种验证方式仅用于Windows2000Server NT操作系统 在这种方式下 用户只要通过Windows2000Server NT操作系统的登录验证 就可以连接到SQLServer2000数据库实例 SQLServer身份验证 在此种验证方式下 即使用户已经登录操作系统 也必须输入有效的SQLServer专用登录名与密码方可连入SQLServer2000数据库实例 3 当一个登录者登录数据库服务器后 并不等于对其中的数据库具有访问权限 还必须由数据库所有者或管理员授权 使该登录者成为某一个数据库的用户 4 作为某个数据库的用户 对数据库对象 如数据库pubs中的表authors 的访问权限也必须被授予 这些权限包括SELECT UPDATE INSERT DELETE等 另一方面 从SQLServer2000数据库服务器的角度讲 对于要登录数据库服务器的用户 SQLServer2000采用以下两种安全认证模式 1 仅Windows认证模式 这是SQLServer2000的默认身份验证模式 适用于所有登录者均为Windows2000Server NT操作系统用户的情况 但在Windows98操作系统上运行的SQLServer实例不支持Windows身份验证 2 混合认证模式 该模式可用于两类登录者 对于登录时提供了SQLServer2000登录账户者 系统将使用SQLServer身份验证对其进行验证 对于没有提供SQLServer2000登录账户或请求Windows身份验证的登录者 则使用Windows身份验证对其进行验证 14 2管理服务器的安全性 对于一个合法的数据库用户 首先必须在SQLServer2000中为其设置相应的登录账户 否则他不能登录数据库服务器 有两类登录账户 SQLServer身份验证的登录账户 以下简称SQL账户 与Windows身份验证的登录账户 以下简称Windows账户 SQL账户的登录名称与登录密码由SQLServer2000系统负责验证 Windows账户的登录名称与登录密码则由Windows2000Server NT负责验证 14 2 1使用企业管理器管理登录账户只有sysadmin或securityadmin固定服务器角色的成员能够利用企业管理器或T SQL语句完成SQL账户和Windows账户的管理任务 1 建立登录账户2 登录账户的有关内容3 修改登录账户 14 2 2使用T SQL语句管理登录账户管理登录账户也可以使用T SQL语句 需要注意的是管理Windows账户与SQL账户所使用的系统存储过程不同 1 管理Windows身份验证的登录账户 1 向Windows账户授权的语法如下 命令格式 sp grantlogin loginame login 命令说明 loginame login 指定一个名称为login的Windows2000Server NT用户或用户组名称 其格式为 域 用户名 或 计算机名 用户名 loginame可以省略 2 拒绝一个Windows账户登录的语法如下 命令格式 sp denylogin loginame login 3 删除一个Windows账户的语法如下 命令格式 sp revokelogin loginame login 2 管理SQL身份验证的登录账户 1 使用系统存储过程创建SQL账户命令格式 sp addlogin loginame login passwd password defdb database deflanguage language 命令说明 login为新建登录账户的名称 password为密码 默认设置为NULL database为登录时的默认数据库 language为默认语言 全部按上述次序取值时 局部变量名称 loginame passwd defdb deflanguage可以省略 2 使用系统存储过程修改SQL账户的密码命令格式 sp password old old password new new password loginame login 命令说明 1 old password为旧的登录密码 其默认值为NULL 2 new password为新的登录密码 无默认值 login为需要更改密码的登录名 login必须已经存在 3 使用系统存储过程修改SQL账户的默认数据库命令格式 sp defaultdb loginame login defdb database 命令说明 database是新的默认数据库的名称 4 使用系统存储过程修改SQL账户的默认语言命令格式 sp defaultlanguage loginame login deflanguage language 命令说明 language是新的数据库默认语言 5 使用系统存储过程删除SQL账户命令格式 sp droplogin loginame login 14 2 3特殊的登录账户saSQLServer2000在安装后自动建立了一个特殊的SQL账户sa 即SystemAdministrator 该账户默认为是所有数据库的dbo用户 数据库所有者 具有最高权限 可以进行任何操作 且不能被删除 刚安装完毕时 sa没有密码 为了安全起见 一定要为其加入密码 14 3管理数据库用户 无论是Windows账户还是SQL账户 登录数据库服务器后的其他操作都是相同的 但首先他必须获得对数据库的访问权 SQLServer2000通过为登录账户指派数据库用户来使其获得对数据库的访问权限 14 3 1使用企业管理器管理数据库用户1 新建数据库用户2 删除数据库用户 14 3 2使用T SQL语句管理数据库用户使用系统存储过程可以在当前数据库中管理数据库用户 1 新建数据库用户命令格式 sp grantdbaccess loginame login name in db name in db 命令说明 1 login 为登录账户的登录名 当其为Windows账户名时 须采用 域名 登录名 格式 当其为SQL账户名时 采用 登录名 格式 2 name in db 表示在当前数据库中为该登录账户所指定的数据库用户的用户名 省略该参数 则默认登录名与用户名相同 2 删除数据库用户命令格式 sp revokedbaccess name in db name 命令说明 name为当前数据库中要删除的用户名 14 3 3特殊的数据库用户dbo和guestSQLServer2000数据库中有2个特殊用户 dbo和guest 1 dbo在创建一个数据库时 SQLServer2000自动将创建该数据库的登录账户设置为该数据库的一个用户 并起名为dbo dbo是数据库的拥有者 不能从数据库中删除 dbo对本数据库拥有所有操作权限 并可以将这些权限全部或部分授予其他数据库用户 另外 属于固定服务器角色sysadmin的成员也映射为所有数据库的dbo 2 guest当一个登录者登录数据库服务器时 如果该服务器上的所有数据库都没有为其建立用户账户 则该登录者只能访问那些具有guest用户的数据库 系统数据库Master与tempdb中的guest用户不能被删除 而其他数据库中的guest用户可以被添加或删除 14 4管理角色 角色是为了方便权限管理而设置的一种管理单位 若打算使一组登录账户或数据库用户在数据库服务器或数据库对象上具有相同的权限 则可以通过角色实现 14 4 1固定角色固定角色按其权限作用范围可以分为固定服务器角色与固定数据库角色 其作用范围分别为整个数据库服务器与单个数据库 这些角色不能修改或删除 1 固定服务器角色SQLServer2000的服务器角色只有固定服务器角色 用于对数据库服务器的操作 对数据库服务器操作的权限不能直接赋给其他登录账户 只能使某些登录账户成为固定服务器角色的成员 才能使他们具有这些权限 SQLServer2000具有如下固定服务器角色 1 sysadmin 有权在SQLServer中进行任何活动 2 serveradmin 有权设置服务器一级的配置选项 关闭服务器 3 setupadmin 有权管理链接服务器和启动过程 4 securityadmin 有权管理登录和CREATEDATABASE权限 还可以读取错误日志和更改密码 5 processadmin 有权管理在SQLServer中运行的进程 6 dbcreator 有权创建 更改和除去数据库 7 diskadmin 有权管理磁盘文件 8 bulkadmin 有权执行BULKINSERT语句 2 固定数据库角色SQLServer2000中的数据库角色用于对单个数据库的操作 每个数据库都有一系列固定数据库角色 尽管在不同的数据库内他们是同名的 但各自的作用范围都仅限于本数据库 SQLServer2000具有如下固定数据库角色 1 db owner 在数据库中具有全部权限 2 db accessadmin 有权添加或删除数据库用户 3 db securityadmin 有权管理全部权限 对象所有权 角色和角色成员资格 4 db ddladmin 有权发出ALLDDL 但不能发出GRANT REVOKE或DENY语句 5 db backupoperator 有权发出DBCC CHECKPOINT和BACKUP语句 6 db datareader 有权查询数据库内任何用户表中的所有数据 7 db datawriter 有权更改数据库内任何用户表中的所有数据 8 db denydatareader 不能查询数据库内任何用户表中的任何数据 9 db denydatawriter 不能更改数据库内任何用户表中的任何数据 14 4 2用户定义的数据库角色数据库角色除了固定角色外 还有一种角色是用户定义的数据库角色 这种角色是在SQLServer2000安装之后根据需要设置的 因此可以创建 修改或删除 它们通常由sysadmin db securityadmin db owner等固定角色中的成员创建 1 创建用户定义的数据库角色创建用户定义的数据库角色需要调用系统存储过程sp addrole 语法如下 命令格式 sp addrole rolename role ownername owner 命令说明 1 role表示要在当前数据库中创建的角色名称 2 owner表示该角色的所有者 默认值为数据库的所有者dbo 2 从当前数据库删除用户定义的角色删除角色需要调用系统存储过程 命令格式 sp droprole rolename role 命令说明 role为将要从当前数据库中删除的角色的名称 注意 1 不能删除固定角色及14 4 3节所述的public角色 2 使用sp droprole只能删除标准角色中的用户定义角色 不能删除应用程序角色 若要删除应用程序角色 须使用sp dropapprole 3 不能删除带有成员的角色 在删除角色之前 首先必须从该角色中删除其所有成员 4 只有sysadmin固定服务器角色 db owner和db securityadmin固定数据库角色成员或角色的所有者才能执行sp droprole 3 利用企业管理器创建或删除用户定义的数据库角色 14 4 3特殊的数据库角色public在SQLServer2000的每个数据库中 包括master msdb tempdb model和所有用户数据库 都有一个特殊的数据库角色public 它能够捕获数据库中用户的所有默认权限 public无法删除 每个数据库用户都自动属于该角色的成员 14 4 4角色成员管理角色成员管理包括将登录账户 数据库用户或其他角色添加为一个角色的成员以及删除角色成员 可以利用系统存储过程或企业管理器管理角色成员 1 管理服务器角色的成员服务器角色的成员均为登录账户 管理服务器角色的成员就是将登录账户添加为固定服务器角色成员或删除之 1 利用系统存储过程将登录账户添加为固定服务器角色的成员命令格式 sp addsrvrolemember loginame login rolename role 命令说明 login是添加到固定服务器角色的登录账户名称 可以是Windows或SQL账户 2 利用系统存储过程从固定服务器角色中删除成员命令格式 sp dropsrvrolemember loginame login rolename role 命令说明 login是将要从固定服务器角色成员中删除的登录账户的名称 login必须存在 role固定服务器角色的名称 3 利用企业管理器管理服务器角色成员2 管理数据库角色的成员数据库角色的成员均为数据库用户或其他数据库角色 管理数据库角色的成员就是将数据库用户 或其他数据库角色 添加为数据库角色成员或删除之 1 利用系统存储过程添加数据库角色的成员命令格式 sp addrolemember rolename role membername security account 命令说明 role是当前数据库中数据库角色名称 包括固定数据库角色与用户定义数据库角色 security account是拟添加到该数据库角色的数据库用户或其他用户定义的数据库角色名称 2 利用系统存储过程从数据库角色中删除成员命令格式 sp droprolemember rolename role membername security account 命令说明 role为将要从中删除成员的数据库角色的名称 security account为将要从角色中删除的数据库用户或另一个角色的名称 3 利用企业管理器管理数据库角色成员 14 4 5应用程序角色有时 从系统的安全性或性能上考虑 可能希望限制用户对数据库的访问方式 例如为了财务数据的安全 限定用户只能通过特定应用程序来访问一个财务数据库 又如 对于某些难以用外键表述的复杂表间关系 需要通过应用程序维护表间数据的完整性与一致性 在这类情况下 采用应用程序角色十分有效 应用程序角色具有如下特点 1 应用程序角色不同于一般的标准角色 它没有成员 如果一个用户想要获得应用程序角色的权限 他必须有权使用某特定应用程序 该应用程序可以通过激活一个应用程序角色来连接某个数据库 2 默认情况下 应用程序角色是非活动的 需要用密码激活 只有在应用程序中激活并连入数据库 应用程序角色才能生效 连接一旦断开 应用程序角色立即失去作用 3 当一个应用程序角色被激活并连接到一个数据库时 连接期间会屏蔽掉该数据库中的所有用户和标准角色及其权限 仅应用程序角色的权限能够生效 只有在应用程序断开连接后 这些用户与标准角色的权限才能生效 4 当一个用户激活了应用程序角色后 他将获得应用程序角色的所有权限 但其原有的非应用程序角色的权限会全部消失 此时 他若想访问其他数据库 只能通过其他数据库中的guest用户账户 如果数据库中没有guest用户账户 则无法访问这些数据库 只有sysadmin固定服务器角色成员 db owner和db securityadmin固定数据库角色成员才能利用系统存储过程创建 修改与删除应用程序角色 但任何用户都可以通过为角色提供正确的密码来激活角色 应用程序角色使用之前首先要创建它 使用时在应用程序中利用密码激活它 一旦应用程序与数据库的连接断开 应用程序角色将自动处于非激活状态 1 创建应用程序角色命令格式 sp addapprole rolename role password password 命令说明 1 role为新建应用程序角色的名称 2 password为激活角色所需的密码 2 激活应用程序角色激活应用程序角色的工作应该在应用程序中进行 即在应用程序中嵌入如下语法代码 命令格式 sp setapprole rolename role password EncryptN password password encrypt encrypt style 命令说明 1 role是当前数据库中已经定义的应用程序角色名 2 password是激活应用程序角色的密码 3 Encrypt函数用于对密码加密 使用时必须在密码前面加上N以将密码转换成Unicode字符串 4 encrypt style指定密码加密方式 它可以取下列两值之一 a NONE 为默认值 表示密码以明文形式传递给SQLServer b ODBC 将密码发送到SQLServer之前 使用ODBC规范Encrypt函数对密码加密 该方式仅用于ODBC客户端或SQLServer的OLEDB提供者 3 修改应用程序角色的密码命令格式 sp approlepassword rolename role newpwd password 命令说明 1 role为应用程序角色的名称 2 password为应用程序角色的新密码 password不能为NULL 4 删除应用程序角色命令格式 sp dropapprole rolename role 命令说明 role表示将要删除的应用程序角色 14 5管理权限 一个登录者若要对某个数据库进行修改或访问 必须具有相应的权限 这种权限涉及服务器级与数据库级的操作 权限既可以直接获得 也可以通过成为角色成员而继承角色的权限 管理权限包括授予 拒绝和废除权限 14 5 1权限的种类权限分为三种 对象权限 语句权限和隐含权限 1 对象权限对象权限指对已存在的数据库对象的操作权限 包括对数据库对象的SELECT INSERT UPDATE DELETE和EXECUTE权限 2 语句权限语句权限用于创建数据库或数据库对象所涉及的活动 3 隐含权限隐含权限控制那些只能由固定角色的成员或数据库对象所有者执行的活动 14 5 2使用T SQL语句管理权限权限管理指对于用户或角色的某些操作赋予允许权限 拒绝权限 以及废除权限 1 允许权限 GRANT 表示用户或角色能够执行某项操作 2 拒绝权限 DENY 表示用户或角色不能执行某项操作 也称禁止权限 3 废除权限 REVOKE 表示废除以前用户或角色所具有的允许权限或拒绝权限 1 语句权限的管理使用T SQL允许 拒绝或废除语句权限的语法如下 命令格式 GRANT DENY REVOKE ALL statement n TOsecurity account n 命令说明 1 GRANT DENY REVOKE分别表示允许 拒绝和废除语句权限的操作 2 ALL表示针对所有语句权限的设置 只有sysadmin成员有权使用ALL 3 statement表示被允许 拒绝或废除语句权限的语句 包括9个语句 CREATEDATABASE CREATEDEFAULT CREATEFUNCTION CREATEPROCEDURE CRE

温馨提示

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

评论

0/150

提交评论