第6章SQLServer权限管理上一页下一页返回本章首页6.1SQLServer权限管理策略6.2用户权限管理第6章SQLServer权限管理上一章返回目录第6章SQLServer权限管理上一页下一页返回本章首页6.1SQLServer权限管理策略6.1.1安全帐户认证6.1.2访问许可确认第6章SQLServer权限管理上一页下一页返回本章首页6.1.1安全帐户认证安全帐户认证是用来确认登录SQLServer的用户的登录帐号和密码的正确性,由此来验证其是否具有连接SQLServer的权限。SQLServer2000提供了两种确认用户的认证模式:(一)WindowsNT认证模式。(二)混合认证模式。第6章SQLServer权限管理上一页下一页返回本章首页(一)WindowsNT认证模式SQLServer数据库系统通常运行在WindowsNT服务器平台上,而NT作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,因此WindowsNT认证模式正是利用了这一用户安全性和帐号管理的机制,允许SQLServer也可以使用NT的用户名和口令。在这种模式下,用户只需要通过WindowsNT的认证,就可以连接到SQLServer,而SQLServer本身也就不需要管理一套登录数据。第6章SQLServer权限管理上一页下一页返回本章首页(二)混合认证模式混合认证模式允许用户使用WindowsNT安全性或SQLServer安全性连接到SQLServer,这就意味着用户可以使用他的帐号登录到WindowsNT,或者使用他的登录名登录到SQLServer系统。NT的用户既可以使用NT认证,也可以使用SQLServer认证。第6章SQLServer权限管理上一页下一页返回本章首页利用企业管理器进行认证模式的设置其主要过程如下:1.打开企业管理器,用右键单击要设置认证模式的服务器,从快捷菜单中选择“属性(properties)”选项,则出现SQLServer属性对话框。2.在SQLServer属性对话框中选择安全性选项。3.在安全性选项栏中,身份验证中可以选择要设置的认证模式,同时审核级别中还可以选择跟踪记录用户登录时的哪种信息,例如登录成功或登录失败的信息等。4.在启动服务帐户中设置当启动并运行SQLServer时默认的登录者中哪一位用户。第6章SQLServer权限管理上一页下一页返回本章首页6.1.2访问许可确认但是通过认证阶段并不代表用户能够访问SQLServer中的数据,同时他还必须通过许可确认。用户只有在具有访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作,这种用户访问数据库权限的设置是通过用户帐号来实现的。第6章SQLServer权限管理上一页下一页返回本章首页6.2用户权限管理6.2.1服务器登录帐号和用户帐号管理6.2.2许可(权限)管理6.2.3角色管理第6章SQLServer权限管理上一页下一页返回本章首页6.2.1服务器登录帐号和用户帐号管理1.SQLServer服务器登录管理SQLServer有三个默认的用户登录帐号:即sa、administrators\builtin和guest。2.用户帐号管理第6章SQLServer权限管理上一页下一页返回本章首页1.利用企业管理器创建、管理SQLServer登录帐号其具体执行步骤如下:(1)打开企业管理器,单击需要登录的服务器左边的“+”号,然后展开安全性文件夹。(2)用右键单击登录(login)图标,从快捷菜单中选择新建登录(newlogin)选项,则出现SQLServer登录属性—新建登录对话框,如图6-2所示。(3)在名称编辑框中输入登录名,在身份验证选项栏中选择新建的用户帐号是WindowsNT认证模式,还是SQLServer认证模式。第6章SQLServer权限管理上一页下一页返回本章首页(4)选择服务器角色页框,如图6-3所示。在服务器角色列表框中,列出了系统的固定服务器角色。(5)选择数据库访问页框,如图6-4所示。上面的列表框列出了该帐号可以访问的数据库,单击数据库左边的复选框,表示该用户可以访问相应的数据库以及该帐号在数据库中的用户名。(6)设置完成后,单击“确定”按钮即可完成登录帐号的创建。第6章SQLServer权限管理上一页下一页返回本章首页图6-2新建登录帐号对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-3服务器角色对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-4数据库访问对话框第6章SQLServer权限管理上一页下一页返回本章首页使用SQLServer的创建登录向导工具创建登录帐号。其具体操作过程如下:图6-5--图6-11第6章SQLServer权限管理上一页下一页返回本章首页图6-5欢迎使用创建登录向导对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-6选择身份验证模式对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-7选择对用户帐号的安全性设置对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-8输入登录信息对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-9选择安全性角色对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-10选择允许登录帐号访问的数据库对话框第6章SQLServer权限管理上一页下一页返回本章首页图6-11完成创建登录向导对话框第6章SQLServer权限管理上一页下一页返回本章首页2.用户帐号管理在数据库中,一个用户或工作组取得合法的登录帐号,只表明该帐号通过了WindowsNT认证或者SQLServer认证,但不能表明其可以对数据库数据和数据库对象进行某种或者某些操作,只有当他同时拥有了用户帐号后,才能够访问数据库。利用企业管理器可以授予SQLServer登录访问数据库的许可权限。使用它可创建一个新数据库用户帐号。第6章SQLServer权限管理上一页下一页返回本章首页6.2.2许可(权限)管理许可用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。用户在登录到SQLServer之后,其用户帐号所归属的NT组或角色所被赋予的许可(权限)决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在每个数据库中用户的许可独立于用户帐号和用户在数据库中的角色,每个数据库都有自己独立的许可系统,在SQLServer中包括三种类型的许可:即对象许可、语句许可和预定义许可。第6章SQLServer权限管理上一页下一页返回本章首页三种许可类型1、对象许可表示对特定的数据库对象,即表、视图、字段和存储过程的操作许可,它决定了能对表、视图等数据库对象执行哪些操作。2、语句许可表示对数据库的操作许可,也就是说,创建数据库或者创建数据库中的其它内容所需要的许可类型称为语句许可。3、预定义许可是指系统安装以后有些用户和角色不必授权就有的许可。第6章SQLServer权限管理上一页下一页返回本章首页可用于语句许可的Transaction_SQL语句及其含义如下:Createdatabase:创建数据库Createtable:创建表Createview:创建视图Createrule:创建规则Createdefault:创建缺省Createprocedure:创建存储过程Createindex:创建索引Backupdatabase:备份数据库Backuplog:备份事务日志第6章SQLServer权限管理上一页下一页返回本章首页许可的管理1.使用SQLServer企业管理器管理许可SQLServer可通过两种途径:即面向单一用户和面向数据库对象的许可设置,来实现对语句许可和对象许可的管理,从而实现对用户许可的设定。第6章SQLServer权限管理上一页下一页返回本章首页Transaction_SQL语句使用grant、revoke和deny三种命令来实现管理权限。2.使用Transaction_SQL语句第6章SQLServer权限管理上一页下一页返回本章首页Grant语句其语法形式如下:(1)对语句的许可Grant{all|statement[,…n]}tosecurity_account[,…n](2)对对象的许可grant{{all[priviledges]|permission[,…n]}[(column[,…n])]on{table|view}|on{table|view}[(column[,…n])]|on{stored_procedure|extended_procedure}}tosecurity_account[,…n][as{group|role}]第6章SQLServer权限管理上一页下一页返回本章首页Deny语句其语法形式如下:(1)否定语句的许可deny{all|statement[,…n]}tosecurity_account[,…n](2)否定对象的许可deny{{all[priviledges]|permission[,…n]}[(column[,…n])]on{table|view}|on{table|view}[(column[,…n])]|on{stored_procedure|extended_procedure}}tosecurity_account[,…n]第6章SQLServer权限管理上一页下一页返回本章首页Revoke语句其语法形式如下:(1)收回语句的许可revoke{all|statement[,…n]}fromsecurity_account[,…n](2)收回对象的许可revoke[grantoptionfor]{{all[priviledges]|permission[,…n]}[(column[,…n])]on{table|view}|on{stored_procedure|extended_procedure}}fromsecurity_account[,…n][as{group|role}]第6章SQLServer权限管理上一页下一页返回本章首页6.2.3角色管理角色是SQLServer7.0版本引进的新概念,它代替了以前版本中组的概念。利用角色,SQLServer管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。SQLServer提供了用户通常管理工作的预定义服务器角色和数据库角色。第6章SQLServer权限管理上一页下一页返回本章首页1、服务器角色服务器角色是指根据SQLServer的管理任务,以及这些任务相对的重要性等级来把具有SQLServer管理职能的用户划分为不同的用户组,每一组所具有的管理SQLServer的权限都是SQLServer内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。第6章SQLServer权限管理上一页下一页返回本章首页七种常用的固定服务器角色系统管理员:拥有SQLServer所有的权限许可。服务器管理员:管理SQLServer服务器端的设置。磁盘管理员:管理磁盘文件。进程管理员:管理SQLServer系统进程。安全管理员:管理和审核SQLServer系统登录。安装管理员:增加、删除连接服务器,建立数据库复制以及管理扩展存储过程。数据库创建者:创建数据库,并对数据库进行修改。第6章SQLServer权限管理上一页下一页返回本章首页2、数据库角色数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以使一个用户具有属于同一数据库的多个角色。SQLServer提供了两种类型的数据库角色:即固定的数据库角色和用户自定义的数据库角色。第6章SQLServer权限管理上一页下一页返回本章首页(1)固定的数据库角色public:维护全部默认许可。db_owner:数据库的所有者,可以对所拥有的数据库