第9章SQL_Server_2008的安全机制_第1页
第9章SQL_Server_2008的安全机制_第2页
第9章SQL_Server_2008的安全机制_第3页
第9章SQL_Server_2008的安全机制_第4页
第9章SQL_Server_2008的安全机制_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库基础与应用数据库基础与应用-SQL Server 2008 SQL Server 2008SQL Server 2008的安全机制的安全机制创建登录账户创建登录账户创建数据库用户创建数据库用户角色角色本章主要本章主要内内容容SQL Server 2008的安全机制概述的安全机制概述1234权限权限5 安全性是所有数据库管理系统的一个重要特征。1.第一个安全性问题:当用户登录数据库系统时,如何确保只有合法的用户才能登录到系统中?在Microsoft SQL Server 2008系统中,通过身份验证模式和主体解决这个问题。一一. SQL Server 2008. SQL Server 20

2、08的安全机制概述的安全机制概述1 1)身份验证模式)身份验证模式 Microsoft SQL Server 2008 Microsoft SQL Server 2008系统提供了两种身份验证模式:系统提供了两种身份验证模式:WindowsWindows身份验证模式和混合模式。身份验证模式和混合模式。WindowsWindows身份验证模式:身份验证模式: 在该模式中,用户通过在该模式中,用户通过WindowsWindows用户账户连接用户账户连接SQL ServerSQL Server时,时,使用使用WindowsWindows操作系统中的账户名和密码操作系统中的账户名和密码。混合模式:混合

3、模式: 在混合模式中,当客户端连接到服务器时,在混合模式中,当客户端连接到服务器时,既可能既可能采取采取WindowsWindows身份验证,身份验证,也可能采取也可能采取SQL ServerSQL Server身份验证。身份验证。查看与更改身份验证模式2 2)主体主体 主体主体是可以请求系统资源的个体或组是可以请求系统资源的个体或组合过程。例如,合过程。例如,数据库用户数据库用户是一种主是一种主体,可以按照自己的体,可以按照自己的权限权限在数据库中在数据库中执行执行操作和使用相应的数据操作和使用相应的数据。 Microsoft SQL Server 2008 Microsoft SQL Se

4、rver 2008系统系统有有多种不同的主体多种不同的主体,不同主体之间的,不同主体之间的关系是典型的层次结构关系,位于不关系是典型的层次结构关系,位于不同层次上的主体其在系统中影响的范同层次上的主体其在系统中影响的范围也不同。位于层次比较高的主体,围也不同。位于层次比较高的主体,其作用范围比较大;位于层次比较低其作用范围比较大;位于层次比较低的主体,其作用范围比较小。的主体,其作用范围比较小。 主 体 W W i i n n d d o o w w s s级级 W in d o w s组 W in d o w s域 登 录 名 W in d o w s本 地 登 录 名 S S Q Q L

5、L S S e e r r v v e e r r级级 S Q L S e rv e r登 录 名 固 定 服 务 器 角 色 数数 据据 库库 级级 数 据 库 用 户 固 定 数 据 库 角 色 应 用 程 序 角 色 安 全 对 象 服服 务务 器器 安安 全全 对对 象象 范范 围围 端 点 S Q L S e rv e r登 录 名 数 据 库 数数 据据 库库 安安 全全 对对 象象 范范 围围 数 据 库 用 户 /应 用 程 序 角 色 /角 色 /程 序 集 /消 息类 型 /路 由 /服 务 /远 程 服 务 绑 定 /全 文 目 录 /证书 /非 对 称 密 钥 /对 称

6、 密 钥 /约 定 /架 构 架架 构构 安安 全全 对对 象象 范范 围围 类 型 /X M L架 构 集 合 /聚 合 /约 束 /函 数 /过程 /队 列 /统 计 信 息 /同 义 词 /表 /视 图 请 求 2.2.第二个安全性问题:当用户登录到系统中,他可以执行第二个安全性问题:当用户登录到系统中,他可以执行哪些哪些操作、使用操作、使用哪些哪些对象和资源?对象和资源?在在Microsoft SQL Server 2008Microsoft SQL Server 2008系统中,通过安全对象和权限设置来解系统中,通过安全对象和权限设置来解决这个问题。决这个问题。 主体 W Wi in

7、 nd do ow ws s 级级 Windows 组 Windows 域登录名 Windows 本地登录名 S SQ QL L S Se er rv ve er r 级级 SQL Server 登录名 固定服务器角色 数数据据库库级级 数据库用户 固定数据库角色 应用程序角色 安全对象 服服务务器器安安全全对对象象范范围围 端点 SQL Server 登录名 数据库 数数据据库库安安全全对对象象范范围围 数据库用户/应用程序角色/角色/程序集/消息类型/路由/服务/远程服务绑定/全文目录/证书/非对称密钥/对称密钥/约定/架构 架架构构安安全全对对象象范范围围 类型/XML 架构集合/聚合/

8、约束/函数/过程/队列/统计信息/同义词/表/视图 请求 主体和安全对象的主体和安全对象的结构示意图结构示意图3.3.第三个安全性问题:第三个安全性问题:数据库中的对象由谁所有数据库中的对象由谁所有?如果是由用户所有,那?如果是由用户所有,那么当用户被删除时,其所拥有的对象怎么办,难道数据库对象可以成为么当用户被删除时,其所拥有的对象怎么办,难道数据库对象可以成为没有所有者的没有所有者的“孤儿孤儿”吗?吗?在在Microsoft SQL Server 2008Microsoft SQL Server 2008系统中,这个问题是通过用户和架构分系统中,这个问题是通过用户和架构分离来解决的。离来解

9、决的。 数据库对象 架构 用户 包含在 被拥有 表 视图 存储过程 函数 数据库对象、架构和数据库对象、架构和用户之间的关系示意用户之间的关系示意图图安全机制的5个等级:客户机安全机制网络传输的安全机制实例级别安全机制数据库级别安全机制对象级别安全机制二二. .创建登录账户创建登录账户 1.创建Windows登录账户三三. .创建数据库用户创建数据库用户2.创建SQL Server登录账户3.启用、禁用和解锁登录要启用、禁用或解锁一个登录的操作步骤:(1)启动Microsoft SQL Server Management Studio,在“对象资源管理器”视图中,连接到适当的服务器,然后向下浏

10、览至“安全性”文件夹。(2)展开“安全性”文件夹和“登录名”文件夹以列出当前的登录。右击一个登录,然后从快捷菜单中选择“属性”以查看此登录的属性。这样会打开“登录属性”对话框。(3)在“登录属性”对话框左侧列表中选择“状态”选项,打开“状态”页面(4)然后可以进行以下操作: 要启动登录,在“登录”选项区下选择“启用”单选按钮。 要禁用登录,在“登录”选项区下选择“禁用”单选按钮。 要解锁登录,清除“登录已锁定”复选框。(5)最后单击“确定”按钮,完成操作。4.修改登录具体操作步骤如下:(1)打开“登录属性”对话框(2)单击“登录属性”对话框左侧的“用户映射”选项,可以为当前用户添加一个连接数据

11、库“msdb”5.删除登录1)在Microsoft SQL Server Management Studio中删除登录账户启动Microsoft SQL Server Management Studio,然后访问适当的服务器。在服务器的“安全性”文件夹中展开“登录名”文件夹。右击想要删除的登录,然后从快捷菜单中选择“删除”,要开“删除对象”对话框,2)使用Transact-SQL语句删除登录账户命令格式如下:DROP LOGIN login_name【例9.1】删除已经创建好的“stu2”账户。 DROP LOGINstu2三三. .创建数据库用户创建数据库用户1.通过设置“用户映射”指明数据

12、库用户2.创建数据库用户四四. .角色角色1.固定服务器角色固定服务器角色固定服务器角色是服务器级别的主体,它们的作用范围是整个服务器。固定服务器角色已经具备了执行指定操作的权限,可以把其他登录名作为成员添加到固定服务器角色中,这样该登录名可以继承固定服务器角色的权限。固定服务器角色的特点在Microsoft SQL Server系统中,可以把登录名添加到固定服务器角色中,使登录名作为固定服务器角色的成员继承固定服务器角色的权限。对于登录名来说,可以选择其是否成为某个固定服务器角色的成员服务器角色按照从最低级别的角色(按照从最低级别的角色(bulkadminbulkadmin)到最高级别的角色

13、()到最高级别的角色(sysadminsysadmin)的顺)的顺序进行描述:序进行描述:BulkadminBulkadmin:这个服务器角色的成员可以运行:这个服务器角色的成员可以运行BULK INSERTBULK INSERT语句。这条语语句。这条语句允许从文本文件中将数据导入到句允许从文本文件中将数据导入到SQL Server 2008SQL Server 2008数据库中,为需要数据库中,为需要执行大容量插入到数据库的域账户而设计。执行大容量插入到数据库的域账户而设计。DbcreatorDbcreator:这个服务器角色的成员可以创建、更改、删除和还原任何:这个服务器角色的成员可以创建

14、、更改、删除和还原任何数据库。这不仅是适合助理数据库。这不仅是适合助理DBADBA的角色,也可能是适合开发人员的角色。的角色,也可能是适合开发人员的角色。DiskadminDiskadmin:这个服务器角色用于管理磁盘文件,比如镜像数据库和添:这个服务器角色用于管理磁盘文件,比如镜像数据库和添加备份设备。它适合助理加备份设备。它适合助理DBADBA。ProcessadminProcessadmin:SQL Server 2008SQL Server 2008能够多任务化,也就是说可以通过执能够多任务化,也就是说可以通过执行多个进程做多个事件。例如,行多个进程做多个事件。例如,SQL Serve

15、r 2008SQL Server 2008可以生成一个进程用可以生成一个进程用于向高速缓存写数据,同时生成另一个进程用于从高速缓存中读取数据。于向高速缓存写数据,同时生成另一个进程用于从高速缓存中读取数据。这个角色的成员可以结束(在这个角色的成员可以结束(在SQL Server 2008SQL Server 2008中称为删除)进程。中称为删除)进程。SecurityadminSecurityadmin:这个服务器角色的成员将管理登录名及其属性。他们:这个服务器角色的成员将管理登录名及其属性。他们可以授权、拒绝和撤销服务器级权限。也可以授权、拒绝和撤销数据可以授权、拒绝和撤销服务器级权限。也可

16、以授权、拒绝和撤销数据库级权限。另外,它们可以重置库级权限。另外,它们可以重置SQL Server 2008SQL Server 2008登录名的密码。登录名的密码。ServeradminServeradmin:这个服务器角色的成员可以更改服务器范围的配置选项:这个服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。例如和关闭服务器。例如SQL Server 2008SQL Server 2008可以使用多大内存或监视通过网可以使用多大内存或监视通过网络发送多少信息,或者关闭服务器,这个角色可以减轻管理员的一些络发送多少信息,或者关闭服务器,这个角色可以减轻管理员的一些管理负担。管理负担

17、。SetupadminSetupadmin:为需要管理链接服务器和控制启动的存储过程的用户而:为需要管理链接服务器和控制启动的存储过程的用户而设计。这个角色的成员能添加到设计。这个角色的成员能添加到setupadminsetupadmin,能增加、删除和配置链,能增加、删除和配置链接服务器,并能控制启动过程。接服务器,并能控制启动过程。SysadminSysadmin:这个服务器角色的成员有权在这个服务器角色的成员有权在SQL Server 2008SQL Server 2008中执行任何中执行任何任务。任务。PublicPublic: :有两大特点,第一,初始状态时没有权限;第二,所有的数据

18、有两大特点,第一,初始状态时没有权限;第二,所有的数据库用户都是它的成员。库用户都是它的成员。使用操作平台管理服务器角色(1)查看服务器角色的属性启动Microsoft SQL Server Management Studio,在“对象资源管理器”中依次展开“安全性|服务器角色”节点 选择其中的一个服务器,在其上单击右键,在弹出的快捷菜单中选择“属性”选项。例如选择sysadmin这个服务器并右击,在快捷菜单中单击“属性”选项,打开如图所示“服务器角色属性”对话框,在该对话框中就可以查看sysadmin这个服务器角色的属性了。(2)添加服务器角色的角色成员为服务器角色添加“角色成员”,可以在服

19、务器角色的“服务器角色属性”对话框中单击“添加”按钮。单击“浏览”按钮,弹出“查找对象”对话框,单击要添加的登录名左边的复选框,单击“确定”按钮即可将选中的角色成员添加进来。(3)删除服务器角色的角色成员 要删除一个已经存在的角色成员,只需要选中该角色成员并在其上单击鼠标右键,然后在弹出的快捷菜单中选择“删除”选项,即可删除服务器角色。 2.2.数据库角色数据库角色三种类型的数据库角色三种类型的数据库角色: :固定数据库角色固定数据库角色:微软提供的作为系统一部分的角色;:微软提供的作为系统一部分的角色;用户定义的标准数据库角色用户定义的标准数据库角色:你自己定义的角色,将:你自己定义的角色,

20、将WindowsWindows用户以一组自定义的权限分组;用户以一组自定义的权限分组;应用程序角色应用程序角色:用来授予应用程序专门的权限,而非授予用:用来授予应用程序专门的权限,而非授予用户组或者单独用户。户组或者单独用户。 1 1)固定数据库角色)固定数据库角色微软提供了微软提供了9 9个内置的角色,以便于在数据库级别授予用户特殊的权限集合个内置的角色,以便于在数据库级别授予用户特殊的权限集合db_ownerdb_owner: :该角色的用户可以在数据库中执行任何操作。该角色的用户可以在数据库中执行任何操作。db_accessadmindb_accessadmin: :该角色的成员可以从数

21、据库中增加或者删除用户。该角色的成员可以从数据库中增加或者删除用户。db_backupopperatordb_backupopperator: :该角色的成员允许备份数据库。该角色的成员允许备份数据库。db_datareaderdb_datareader: :该角色的成员允许从任何表读取任何数据。该角色的成员允许从任何表读取任何数据。db_datawriterdb_datawriter: :该角色的成员允许往任何表写入数据。该角色的成员允许往任何表写入数据。db_ddladmindb_ddladmin:该角色的成员允许在数据库中增加、修改或者删除任何对:该角色的成员允许在数据库中增加、修改或者

22、删除任何对象(即可以执行任何象(即可以执行任何DDLDDL语句)。语句)。db_denydatareaderdb_denydatareader: :该角色的成员被拒绝查看数据库中的任何数据,该角色的成员被拒绝查看数据库中的任何数据,但是他们仍然可以通过存储过程来查看。但是他们仍然可以通过存储过程来查看。db_denydatawriterdb_denydatawriter: : 像像db_denydatareaderdb_denydatareader角色,该角色的成员被拒角色,该角色的成员被拒绝修改数据库中的任何数据,但是他们仍然可以通过存储过程来修改。绝修改数据库中的任何数据,但是他们仍然可以

23、通过存储过程来修改。db_securityadmin:db_securityadmin:该角色的成员可以更改数据库中的权限和角色。该角色的成员可以更改数据库中的权限和角色。publicpublic:在:在SQL Server 2008SQL Server 2008中每个数据库用户都属于中每个数据库用户都属于publicpublic数据库数据库角色。当尚未对某个用户授予或者拒绝对安全对象的特定权限时,这角色。当尚未对某个用户授予或者拒绝对安全对象的特定权限时,这该用户将据称授予该安全对象的该用户将据称授予该安全对象的publicpublic角色的权限,这个数据库角色角色的权限,这个数据库角色不能

24、被删除不能被删除2)用户自定义数据库角色3 3)应用程序角色应用程序角色 应用程序角色允许用户为特定的应用程序角色允许用户为特定的应用程序应用程序创建密码保护的角创建密码保护的角色。色。五五. .权限权限11.1.常用的权限常用的权限9.6.4 操作权限权限分为3种状态:授予、拒绝、撤销,可以使用如下的语句来修改权限的状态。授予权限(GRANT):授予权限以执行相关的操作。通过角色,所有该角色的成员继承此权限。撤销权限(REVOKE):撤销授予的权限,但不会显示阻止用户或角色执行操作。用户或角色仍然能继承其他角色的GRANT权限。拒绝权限(DENY):显式拒绝执行操作的权限,并阻止用户或角色继

25、承权限,该语句优先于其他授予的权限。1.授予权限 本语法格式:GRANTALL|statement,.n TO security_account,.n 相关参数据说明如下:ALL:表示希望给该类型的对象授予所有可用的权限。不推荐使用此选项,保留些选项仅用于向后兼容。授予ALL参数相当于授予以下权限:如果安全对象为数据库,则ALL表示CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE VIEW、CREATE TABLE、CREATE RULE等权限。如果安全对象为标量函数,则ALL表示EXECUTE和REF

26、ERENCES。如果安全对象为表值函数,则ALL表示SELECT、DELETE、INSERT、UPDATE、REFERENCES。如果安全对象为存储过程,则ALL表示EXECUTE、SYNONYM。如果安全对象为表,则ALL表示SELECT、DELETE、INSERT、UPDATE、REFERENCES。如果安全对象为视图,则ALL表示SELECT、DELETE、INSERT、UPDATE、REFERENCES。Statement:表示可以授予权限的命令,例如,CREATE DATABASE。security_account:表示定义被授予权限的用户单位。security_account可以是SQL Server的数据库用户,可以是SQL Server的角色,也可以是Windows的用户或工作组【例9.2】使用GRANT命令授予角色“students_mag”对”students”数据库中“stu”表的DELETE、INSERT、UPDATE权限。 USE students Go GRANT DELE

温馨提示

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

评论

0/150

提交评论