用户和安全性管理.ppt_第1页
用户和安全性管理.ppt_第2页
用户和安全性管理.ppt_第3页
用户和安全性管理.ppt_第4页
用户和安全性管理.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

-SQL Server 2000,第四章 用户和安全性管理,用户和安全性管理,SQL Server的安全性管理是建立在authentication和permission两者机制上的。 认证是指来确定登录SQL Server的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQL Server的权限。 通过认证阶段并不代表能够访问SQL Server中的数据,用户只有在获取访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作。 用户访问数据库权限的设置是通过用户账号来实现的。同时在SQL Server中角色作为用户组的代替物,大大地简化了安全性管理,SQL Server 的安全验证 登录到SQL Server,WINDOWS 认证模式 SQL Server 数据库系统通常运行在WINDOWS2000或NT服务器平台,WINDOWS认证模式正是利用这一用户安全性和账号管理的机制,允许SQL Server也可以使用NT的用户名和口令。在该模式下用户只要通过WINDOWS 的认证,就可连接到SQL Server WINDOWS 认证模式比起SQL Server 认证模式来有许多优点原因在于WNDOWS认证模式集成了NT 或WINDOWS 2000 的安全系统并且NT 安全管理具有众多特征如安全合法性口令加密对密码最小长度进行限制等所以当用户试图登录到SQLServer 时它从NT 或WNDOWS 2000 的网络安全属性中获取登录用户的账号与密码 并使用NT 或WINDWOS 2000 验证账号和密码的机制来检验登录的合法性从而提高了SQL Server 的安全性 在WINDOWS NT 中使用了用户组所以当使用WINDOWS 认证时我们总是把用户归入一定的NT 用户组以便当在SQL Server 中对NT 用户组进行数据库访问权限设置时能够把这种权限设置传递给单一用户而且当新增加一个登录用户时也总把它归入某一NT 用户组这种方法可以使用户更为方便地加入到系统中并消除了逐一为每一个用户进行数据库访问权限设置而带来的不必要的工作量,SQL Server 的安全验证 登录到SQL Server,混合认证模式 在混合认证模式下WINDOWS认证和SQL Server认证这两种认证模式都是可用的。NT的用户既可以使用NT认证,也可以使用SQL Server认证。SQL Server认证:在该认证模式下,用户在连接SQL Server时必须提供登录名和登录密码。这些登录信息存储在系统表syslogins中,与NT的登录账号无关,SQL Server 自己执行认证。,SQL Server 的安全验证 登录到SQL Server,SQL Server 认证 在该认证模式下用户在连接SQL Server 时必须提供登录名和登录密码这些登录信息存储在系统表syslogins 中与NT 的登录账号无关SQL Server 自己执行认证处理如果输入的登录信息与系统表syslogins 中的某条记录相匹配则表明登录成功,SQL Server 的安全验证 SQL Server认证模式的设置,启动企业管理器选择要进行认证模式设置的服务器 右击该服务器,在弹出菜单中选择“属性”将弹出SQL Server Properties对话框 在SQL Server Properties对话框中选择“安全性”选项 在“安全性”选项栏的”身份验证”处,选择要设置的认证模式。同时可以在”审核级别”处选择任意一个单选按钮,来决定跟踪记录用户登录时的哪种信息。 在”启动服务帐户”设置当启动Enterprise Manager时默认的登录者,SQL Server 的安全验证 管理SQL Server登录账号,用企业管理器管理SQL Server登录 启动企业管理器单击登录服务器紧邻的+ 标志 单击安全性文件夹旁边的+ 标志 右击”登录”图标从弹出菜单中选择“新建登录”选项,将弹出新建登录对话框,SQL Server 的安全验证 管理SQL Server登录账号,使用Transact_SQL管理SQL Server登录 在SQL Server中一些系统存储过程提供了管理SQL Server登录功能,主要包括: sp_addlogin 创建新的使用SQL Server 认证模式的登录账号 sp_droplogin SQL Server 中删除该登录账号禁止其访问SQL Server sp_granlogin 设定一WINDOWS NT 用户或用户组为SQL Server 登录者 sp_denylogin 拒绝某一NT 用户或用户组连接到SQL Server sp_revokelogin 用来删除NT 用户或用户组在SQL Server 上的登录信息,SQL Server 的安全验证 管理SQL Server登录账号,sp_addlogin loginame = login passwd = password defdb = database deflanguage = language sid = sid encryptopt = encryption_option 其中 loginame 登录名 passwd 登录密码 defdb 登录时缺省数据库 deflanguage 登录时缺省语言 sid 安全标识码 encryptopt 将密码存储到系统表时是否对其进行加密 encryptopt 参数有三个选项 NULL 表示对密码进行加密 skip_encryption 表示对密码不加密 skip_encryption_old 只在SQL Server 升级时使用表示旧版本已对密码加密,SQL Server 的安全验证 管理SQL Server登录账号,例:新建SQL Server 登录者albert,密码为foot,默认数据库为student EXEC sp_addlogin albert, food, student sp_droplogin loginame = login 例: 删除SQL Server 登录者albert exec sp_droplogin albert sp_grantlogin loginame = login 例: 将WINDOWS NT 用户MIS96XJ 设定为SQL Server 登录者 exec sp_grantlogin MIS96XJ 例: 拒绝NT 用户MIS96XJ 登录到SQL Server exec sp_denylogin MIS96XJ 例: 删除NT 用户MIS96XJ 登录到SQL SERVER 的登录信息 exec sp_revokelogin MIS96XJ ,注意事项,SQL Server 的登录名和密码最大长度为128 个字符,这些字符可以是英文字母符数字。但下面三种情况下的登录名将被视为无效的: 登录名包括字符 新建的登录名是保留名如sa或public或是已经存在的登录名 登录名不能为NULL或是一个空字符串 不能删除系统管理者sa 以及当前连接到SQL Server 的登录 如果用户仍存在数据库sysusers表中则不能删除该登录账号 sp_addlogin 和sp_droplogin 只能用在SQL Server 认证模式下 sp_granlogin 和sp_revokelogin 只能使用于NT 认证模式下对NT 用户或 用户组账号做设定而不能对SQL Server 维护的登录账号进行设定 以上介绍的各系统过程只有属于sysadmin(系统管理员,可以在 SQL Server 中执行任何活动 ) 和securityadmin(安全管理员,可以设置服务器范围的配置选项,关闭服务器 ) 服务器角色的成员才可以执行这些命令 如果使用了NT 认证模式,如果已经把某一NT用户或用户组设定为SQL Server的登录者。那么若从NT 域中删除该NT用户或用户组,则相应的SQL Server登录将成为孤儿,而且其SQL Server登录信息仍存储在系统表syslogins 中,SQL Server 的安全验证 管理SQL Server数据库账号,数据库用户用来指出哪一个人可以访问哪一个数据库。在一个数据库中,用户ID惟一标识一个用户,用户对数据的访问权限,以及对数据库对象的所有关系都是通过用户账号来控制的。用户账号总是基于数据库的,即两个不同数据库中可以有两个相同的用户账号。在数据库中用户账号与登录账号是两个不同的概念,一个合法的登录账号只表明该账号通过了NT认证或SQL Server认证,但不能表明其可以对数据库数据和数据对象进行某种或某些操作。所以一个登录账号总是与一个或多个数据库用户账号相对应。,SQL Server 的安全验证 管理SQL Server数据库账号,通常而言数据库用户账号总是与某一登录账号相关联但有一个例外那就是guest 用户 在安装系统时guest 用户被加入到master pubs tempdb 和Northwind 数据中 那么SQL Server 为什么要进行这样的处理呢让我们看看在用户通过NT 认证或SQLServer 认证而成功登录到SQL Server 之后SQL Server 又做了哪些事情 1 SQL Server 检查该登录用户是否有合法的用户名如果有合法用户则允许 其以用户名访问数据库否则执行第二步 2 SQL Server 检查是否有guest 用户如果有则允许登录用户以guest 用户 来访问数据库如果没有则该登录用户被拒绝 由此可见guest 用户主要是让那些没有属于自己的用户账号的SQL Server 登录者 把其作为缺省的用户从而使该登录者能够访问具有guest 用户的数据库 通常我们可以像删除或添加其它用户那样删除或添加guest 用户但是不能从master 或 tempdb 数据库中删除该用户并且在一个新建的数据库中不存在guest 用户除非将其添加进行,SQL Server 的安全验证 管理SQL Server数据库账号,利用SQL Server Enterprise Manager管理数据库用户 启动SQL Server Enterprise Manager单击登录服务器旁边的+标志 打开数据库文件夹打开要创建用户的数据库 右击”用户”图标在弹出菜单中选择”新建用户”弹出“新建用户”对话框 在“登录名”选择框内选择已经创建的登录账号,在”用户名”选择框内输入数据库用户名称,SQL Server 的安全验证 管理SQL Server数据库账号,利用系统过程管理数据库用户 创建新数据库用户: sp_granddbaccess 就是被用来为SQL Server登录者或NT用户或用户组建立一个相匹配的数据用户账号 删除数据库用户: sp_revokedbaccess 用来将数据库用户从当前数据库中删除 查看数据库用户信息: sp_helpuser 被用来显示当前数据库的指定用户信息,管理SQL Server 的权限,用户在登录到SQL Server之后,其用户账号所归属的NT组或角色被授予的权限,决定了该用户能够对哪些数据库对象执行哪种操作,以及能够访问修改哪些数据。在SQL Server中包括两种类型的权限即:对象权限和语句权限 在SQL Server 中我们使用GRANT REVOKE 和DENY 三种命令来管理权限: GRANT 用来把权限授予某一用户以允许该用户执行针对该对象的操作 REVOKE 取消用户对某一对象或语句的权限这些权限是经过GRANT 语句 DENY 用来禁止用户对某一对象或语句的权限明确禁止其对某一用户对象,允许的类型,授予、拒绝及废除权限,授予权限,禁止权限,废除权限,管理SQL Server 的权限,对象权限 对象权限是针对表视图存储过程而言它决定了能对表视图存储过程执行哪些操作如UPDATE DELETE INSERT EXECUTE,管理SQL Server 的权限,语句权限 语句权限主要指用户是否具有权限来执行某一语句。这些语句通常是一些具有管理性的操作,如创建数据库、表、存储过程等语句,管理SQL Server 的权限,利用企业管理器管理权限 启动企业管理器登录到指定的服务器 展开指定的数据库然后单击“用户”图标此时在右窗格中将显示数据库所有用户 在数据库用户清单中选择要进行权限设置的用户右击用户名然后在弹出菜单中选择”属性”弹出”数据库用户属性”对话框 在”数据库用户属性”对话框中单击”权限”按钮弹出”数据库用户属性”对话框在该对话框中进行对象权限设置,管理SQL Server 的权限,利用 Transact_SQL管理权限 GRANT ALL PRIVILEGES | permission .n column .n ON table | view | ON table | view column .n | ON stored_procedure | extended_procedure | ON user_defined_function TO security_account .n WITH GRANT OPTION AS group | role REVOKE 和DENY 语法格式与GRANT 语法格式一样,利用角色管理SQL Server,自SQL Server 7.0版本开始引入了新的概念角色。从而替代以前版本中组的概念,和组一样SQL Server管理者可以将某些用户设置为某一角色。这样只对角色进行权限设置,便可实现对所有用户权限的设置。大大减少了管理员的工作量。在SQL Server中主要有两种角色类型: 服务器角色与数据库角色,利用角色管理SQL Server 服务器角色,服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级,来把具有SQL Server管理职能的用户,划分成不同的用户组,每一组所具有管理SQL Server的权限已被预定义。服务器角色适用在服务器范围内,并且其权限不能被修改。,利用角色管理SQL Server 数据库角色,我们在数据库中添加新数据库角色,或使用已经存在的数据库角色。并让这些有着相同数据库权限的用户归属于同一角色。由此可见数据库角色能为某一用户或一组用户授予不同级别的管理或访问数据库或数据库对象的权限,这些权限是数据库专有的,而且还可以使一个用户具有属于同一数据库的多个角色,SQL Server提供了两种数据库角色类型: 预定义的数据库角色 用户自定义的数据库角色,预定义数据库角色,预定义数据库角色是指这些角色所有具有的管理、访问数据库权限已被SQL Server定义,并且SQL Server管理者不能对其所具有的权限进行任何修改。SQL Server中的每一个数据库中都有一组预定义的数据库角色。在数据库中使用预定义的数据库角色,可以将不同级别的数据库管理工作分给不同的角色,从而很容易实现工作权限的传递。,用户自定义的数据库角色,当我们打算为某些数据库用户设置相同的权限,但是这些权限不等同于预定义的数据库角色所具有的权限时,我们就可以定义新的数据库角色来满足这一要求。 SQL Server数据库角色可以包含NT 用户组或用户 在同一数据库中用户可以具有多个不同的自定义角色这种角色的组合是自由的而不仅仅是public与其它一种角色的结合 角色可以进行嵌套从而在数据库实现不同级别的安全性 用户定义的数据库角色有两种类型:标准角色和应用角色 标准角色类似于SQL Server 7.0版本以前的用户组它通过对用户权限等级的认定而将用户划分为不同的用户组,应用角色,应用角色是一种比较特殊的角色类型。当我们打算让某些用户只能通过特定的应用程序,间接地存取数据库中的数据,比如通过查询分析器或Microsoft Excel,而不是直接地存取数据库数据时,我们就应该考虑使用应用角色。 当某一用户使用了应用角色时,他便放弃了已被赋予的所有数据库专有权限。他所拥有只是应用角色被设置的权限。通过应用角色总能实现这样的目标:即以可控制方式来限定用户的语句或对象权限。 应用角色不像标准角色那样具有组的含义,因此不能像使用标准角色那样把某一用户设置为应用角色成员 当用户在数据库中激活应用角色时,必须提供密码。即应用角色是受口令保护的,而标准角色并不受口令保护,管理服务器角色,使用企业管理器查看服务器角色成员 启动SQL Server Enterprise Manager 登录到指定的服务器 单击“安全性”文件夹单击”服务器角色” 图标 在右窗格中右击服务器角色在弹出菜单中选择“属性”然后弹出“服务器角色属性” 对话框,使用存储过程管理服务器角色,添加

温馨提示

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

评论

0/150

提交评论