版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
认知SQLServer2008的安全机制课程简介2通过本课程的学习,认知SQLServer
2008的安全机制
主要学习内容:一.DBMS安全性控制概述二.SQLServer2008的安全特性三.SQLServer2008的安全机制DBMS安全性控制概述3数据库管理系统(DBMS)的功能之一就是进行数据库运行控制(DCL),重要的一点就是数据安全性控制。数据库管理系统的安全性通常包括两个方面:数据运行的安全性:如:数据库维护,灾难恢复等。数据访问的安全性:是指设计和实现数据库资源的授权访问即防止未经授权的用户存取数据库中的数据,避免数据被泄露、更改或破坏。SQLServer2008的安全特性4(1)SQLServer2008秉承早期版本“设计安全、默认安全、部署安全”的策略,目的在于帮助保护服务器实例及其数据库免受安全攻击。(2)同时又引入了其他一些安全改进,例如:用户账户控制(UserAccountControl,UAC)。通过制定“最低特权”策略减少SQLServer及其数据库的外围应用和攻击区域,提高Windows管理员与SQLServer管理员之间的分离程度SQLServer2008的安全特性5(3)引入基于策略的管理,用于管理一个或多个SQLServer实例的系统,当SQLServer策略管理员使用基于策略的管理时,使用SSMS创建策略以管理服务器上的实体等。SQLServer2008的安全机制6SQLServer2008是如何保证数据库安全性的?SQLServer2008的安全性管理由以下四个等级层次构成,如图所示:SQLServer2008的安全机制71.操作系统级的安全性:在用户使用客户计算机通过网络实现SQLServer服务器的访问时,首先要获得计算机操作系统的使用权。操作系统安全性是操作系统管理员或者网络管理员的任务。SQLServer采用了集成的WindowsNT网络安全性机制,操作系统安全性的地位得到提高,但同时也加大了管理数据库系统安全性和灵活性的难度。SQLServer2008的安全机制82.SQLServer服务器级的安全性:是建立在控制服务器登录名和密码的基础上。SQLServer采用了标准SQLServer登录和集成WindowsNT登录两种方式。无论使用哪种登录方式,用户在登录时提供的登录名和密码决定了用户能否获得SQLServer的访问权限。SQLServer2008的安全机制93.数据库级的安全性:在用户通过SQLServer服务器级的安全性检验以后,将直接面对不同的数据库入口,这时用户将接受的第三次安全性检验。必须创建与服务器登录名映射的数据库用户,以此获得访问数据库的权利。在默认的情况下,只有数据库的拥有者才可以访问该数据库的对象,数据库的拥有者可以分配访问权限给其他用户,以便让其他用户也拥有针对该数据库的访问权利。SQLServer2008的安全机制104.数据库对象级的安全性:数据库对象级的安全性是检查数据库用户权限的最后一个安全等级。在创建数据库对象的时候,SQLServer将自动把该数据库对象(如:表)的拥有权赋予创建该对象的拥有者。对象的拥有者可以实现该对象的安全控制。数据库对象访问的权限定义了用户对数据库中对象的引用和数据操作语句的许可权限。SQLServer2008服务器的安全管理学习目标12通过本课程的学习,结合实例掌握SQLServer2008服务器的安全管理。
主要学习内容:一.身份验证模式二.登录名管理13SQLServer2008服务器的安全是建立在对服务器连接的登录名和密码控制上,登录服务器时所采用的登录名和密码,决定了用户在成功登录服务器后所拥有的访问权限。身份验证模式14SQLServer2008服务器为连接提供了两种身份验证模式,如图所示:Windows身份验证模式混合身份验证模式身份验证模式151.Windows身份验证模式Windows身份验证模式下,SQLServer依靠Windows操作系统来认证请求SQLServer实例的用户。由于已经通过了Windows安全系统的认证,因此用户无需在连接中提供任何用户的认证信息。Windows身份验证模式是默认身份验证模式身份验证模式162.混合身份验证模式
混合身份验证模式即采用Windows身份验证模式和SQLServer身份验证联合使用的验证模式。当使用SQLServer身份验证时,在SQLServer中创建的登录名并不基于Windows用户帐户。混合身份验证模式允许非Windows客户、Internet客户和混合的客户组连接到SQLServer中。身份验证模式17【例】查看数据库“BookManageDB”所在的服务器的登录模式,并设置服务器的登录模式为“SQLServer和Windows身份验证模式”。身份验证模式181)启动SSMS,选择默认的Windows身份验证模式连接服务器,在对象资源管理器中,右击数据库“BookManageDB”所在的服务器,在弹出的快捷菜单中,选择【属性】选项,随后在出现的【服务器属性】窗体的左侧选择“安全性”选择页,便可在窗体右侧查看到两种身份验证模式,并可改变现有的身份验证模式,如图所示:登录名管理191.系统内置登录帐号在SQLServer2008中,系统已经自动创建了一些系统内置帐号。如图所示,在“对象资源管理器”中展开当前服务器中的“安全性”节点→“登录名”节点,就可以看到当前服务器中的登录名信息。特别要注意登录名:一个是“LAPTOP-6382QHC2\zrooue”,另一个是“sa”登录名管理20登录名“LAPTOP-6382QHC2\zrooue”实际就是使用Windows身份验证模式登录时所使用的Windows系统的帐户。“LAPTOP-6382QHC2”是就是本机名。登录名管理21登录名“sa”(superadminister超级管理员)是SQLServer身份验证模式的默认登录(如图所示),对SQLServer有完全的管理权限。如果安装SQLServer2008过程中选择混合模式身份验证,将会强制为该帐户设置密码,而且必须设置强密码。除非应用程序需要使用sa帐户,建议勿启用该帐户。登录名管理222.自定义用户登录名除了使用内置登录帐号进行登录外,用户还可以自定义登录名用于登录:用户即可以将新建的Windows帐号添加到SQLServer2008中,也可以新建SQLServer帐号。
1)自定义SQLServer身份验证的登录名创建与登录【例1】在数据库“Sales1”所在的服务器上,创建SQLServer身份验证的登录名My_User,密码为“123456”。登录名管理23登录名管理24(1)如图所示,利用SSMS,在【对象资源管理器】窗口中,展开服务器的【安全性】|【登录名】节点,右击【登录名】节点,在弹出的快捷菜单中,选择【新建登录名】选项。(2)打开【登录名-新建】窗口,在左侧窗格中,单击【常规】选项,打开【常规】选项页。(3)在【登录名】文本框中输入“My_User”。在下面选择登录方式,这里选中【SQLServer身份验证】单选按钮,在【密码】文本框中,输入“123456”,在【确认密码】的文本框中,输入“123456”。登录名管理25(4)取消【强制实施密码策略】的选中状态。(5)在【选择项】|【状态】选项的右侧窗格中,在【设置】-【是否允许接到数据库引擎】为【授予】;将【登录】设置为【启用】。单击【确定】按钮,完成登录名的创建。登录名管理26【例2】利用创建的登录名“My_User”,登录到服务器上。连接服务器时,选择“SQLServer身份验证”,并在【登录名】里输入“My_User”,【密码】里输入“123456”,然后点击“连接”按钮即可登录到指定服务器上。登录名管理272)自定义Windows身份验证的登录名创建与登录【例】在Sales1数据库所在的服务器上,创建Windows身份验证的登录名“win_user”。登录名管理28(1)如图所示,在Windows操作系统中,在【控制面板】-【用户账户】中创建Windows新帐户“win_user”;登录名管理29(2)将新创建的Windows帐户“win_user”连接到SQLServer登录名,如图所示:登录名管理30在【对象资源管理器】窗口中,展开服务器的【安全性】|【登录名】节点,右击【登录名】节点,在弹出的快捷菜单中,选择【新建登录名】选项。打开【登录名-新建】窗口,在左侧窗格中,单击【常规】选项,打开【常规】选项页,在右侧界面中选择“Windows身份验证”单选按钮后,点击“登录名”右侧的“搜索”按钮,打开【选择用户或组】对话框。登录名管理31在打开的【选择用户或组】对话框中点击下方的“高级”按钮后,在跳出的对话框中,选择“一般性查询”右侧的“立即查找”按钮,即可在下方的“搜索结果”中看到新创建的“win_user”,选中它,确定后退出即可。特别强调:要想使用新创建的Windows新帐户登录SQLServer2008服务器,必须注销旧帐户改用新windows帐户进行windows系统登录,然后才能去登录SQLServer2008服务器。数据库用户的管理课程简介33通过本课程,结合实例学习数据库用户的管理。
主要学习内容:一.SQLServer数据库用户二.内置数据库用户三.创建自定义数据库用户四.修改和删除自定义数据库用户SQLServer数据库用户34一般情况下,用户持有登录名就能连接到SQLServer服务器上,也可以看到服务器里包含的数据库。但仅持有登录名是无法进入访问数据库的(因为无权限)。要想访问数据库,必须创建与登录名映射的数据库用户,提供给权限后,才能获得访问权利。数据库用户是数据库级的主体,是数据库级的安全策略。内置数据库用户35在创建任何一个数据库时,同时会产生内置数据库用户,如图所示,每个数据库一般都默认包含“dbo(DatabaseOwner)”和“guest”两个特殊用户,此外,每个数据库还包含INFORMATION_SCHEMA和sys两个实体,并且这些实体都作为用户显示在目录中,这两个实体是SQLServer所必需的,但它们不是主体,不能修改或删除。内置数据库用户36“dbo”用户是特殊的数据库,是数据库的拥有者(databaseowner)。dbo是具有隐式权限的用户,可在数据库中执行所有的操作。在系统安装时,“dbo”用户就被设置到model数据库中,而且不能被删除。登录名“sa”在所有数据库中都会自动标识为“dbo”用户,具有对所有数据库的全部管理权限。内置数据库用户37guest用户是数据库的“客人”。guest也是一个特殊用户,它与dbo一样,创建数据库之后会自动生成,无法删除。对guest授予权限一定要慎重,默认情况下,guest什么权限也没有。创建自定义数据库用户38为了便于系统维护,一般将数据库用户名与登录名设为一致。【例】将创建的登录名My_User映射成数据库“BookManageDB”的用户名My_User。创建自定义数据库用户39(1)如图所示,,在"对象资源管理器"中,展开数据库“BookManageDB”节点→“安全性”节点,,用右键单击“用户”节点,从弹出的快捷菜单中选择“新建用户”命令。创建自定义数据库用户40(2)出现"数据库用户-新建"窗口,选择"常规"页,在用户名文本框中输入“My_User”,然后单击“登录名”文本框右边的“搜索”按钮,搜索相应登录名。创建自定义数据库用户41(3)在打开的"选择登录名"对话框中单击“浏览”按钮。。创建自定义数据库用户42(4)在打开的"查找对象"对话框中选择匹配的对象登录名“My_User”,单击“确定”按钮,返回"选择登录名"对话框,在“输入要选择的对象名称”下方就会出现“My_User”。创建自定义数据库用户43(5)单击"选择登录名"对话框的“确定”按钮,返回"数据库用户-新建"对话框,可以看到登录名的文本框里出现“My_User”。创建自定义数据库用户44(6)单击“确定”按钮,完成登录名“My_User”到数据库“BookManageDB”用户名“My_User”的映射设置。展开"对象资源管理器"中的数据库“BookManageDB”→“安全性”→“用户”节点,即可看到“BookManageDB”数据库新增了个用户“My_User”。创建自定义数据库用户45(7)用登录名“My_User”登录到服务器上,验证映射到“BookManageDB”数据库是否成功,如图所示,可以看到进入了“BookManageDB”数据库内部,但无法进入其他数据库内部。修改和删除自定义数据库用户46如图所示,在"对象资源管理器"中,展开指定数据库“BookManageDB”,在其“安全性”节点下,右键单击数据库用户My_User,从弹出的快捷菜单中选择“属性”命令,在打开的"数据库用户-My_User"窗口中即可修改该数据库用户的安全对象等属性;从弹出的快捷菜单中选择“删除”命令,即可删除此数据库用户。权限的管理课程简介48通过本课程,结合实例学习权限的管理。
主要学习内容:一.权限概述二.权限管理权限概述491.认知权限使用前面课程创建的登录名My_User登录SQLServer服务器(此登录名已映射成“BookManageDB”数据库用户My_User)。结果发现,如图所示,除了可以进入数据库“BookManageDB”外,剩下其他数据库均无法进入。这是因为用户必须先成为数据库用户才能获得访问此数据库的权限。权限概述50那么成为“BookManageDB”数据库用户的My_User,已获得进入此数据库的权限,是否代表就可以操作数据库“BookManageDB”内的任何对象呢?结果发现,如图所示,连库中表都看不到。SQLServer中未被授权的数据库用户将无法操作数据库对象。权限概述512.权限的分类用户对服务器的管理或对数据库对象的访问都需要获得相应的许可权限。SQLServer的系统权限分为服务器权限和数据库权限。服务器权限是执行服务器的管理任务,一般此权限只授予数据库管理员(DBA)。权限概述52数据库权限用于控制对数据库对象的访问和语句的执行。数据库权限分为数据库对象权限和数据库语句权限。①数据库对象权限是授予数据库用户对数据库中的表、列、视图和存储过程等对象的操作权。②数据库语句权限允许用户创建数据库对象。权限概述533.管理权限授予权限:允许用户或角色具有某种操作权。回收权限:删除以前在当前数据库内的用户或角色上授予或拒绝的权限。拒绝权限:拒绝给当前数据库内的安全用户授予权限以防止安全用户通过其组或角色成员继承权限。权限管理541.(为登录名)设置服务器权限:【例】查看登录名My_User具有的权限,并授予My_User具有创建数据库的权限。1)利用My_User登录服务器,在“对象资源管理器”中,右击服务器,在弹出的快捷菜单选择“属性”命令。权限管理552)在打开的“服务器属性”窗口左侧选择“权限”页,查看右侧的权限的“有效”选项卡,即可看到My_User的权限有“可以连接SQL”及“查看到任意数据库”。权限管理563)如果此时My_User想创建数据库(但My_User目前不具备创建权限),那么系统就会提示创建失败,如图所示:权限管理574)如下图所示,使用Windows身份验证或sa登录到服务器上,在“对象资源管理器”中,右击服务器,在弹出的快捷菜单选择“属性”命令,如图所示,打开“服务器属性”窗口,窗口左侧选择“权限”页,在右侧上方的“登录名或角色”列表中选择My_User,在右侧下方“My_User的权限”列表中选择授予“创建任意数据库”的权限即可。权限管理58权限管理595)切换用户,以My_User登录服务器,就可以创建数据库了。权限管理602.(为数据库用户)设置数据库权限【例1】授予登录名My_User(已映射数据库用户为My_user)对于“BookManageDB”数据库具有查看表的权限。权限管理611)利用Windows身份验证或sa登录服务器。2)如下图所示,在“对象资源管理器”中,右击“BookManageDB”数据库,在弹出的快捷菜单选择“属性”命令,在打开的“数据库属性-BookManageDB”窗口中,左侧选择“权限”页,在右侧中部的“用户或角色”列表中选择要设置的用户“My_user”,然后在下侧的“My_user权限”列表中勾选“选择”,确定退出。权限管理62权限管理633)现使用My_User登录服务器上,就可以查看到“BookManageDB”数据库中表了。权限管理64【例2】为登录名“My_User”的“BookManageDB”数据库用户“My_User”,设置表“Users”的UserName列的更新权限。权限管理651)使用Windows身份验证/sa登录服务器,在"对象资源管理器"窗口中,展开“BookManageDB”数据库节点→“安全性”→“用户”节点,用右键单击“My_User”节点,从弹出的快捷菜单中选择“属性”命令。权限管理662)如下图所示,在弹出的"数据库用户-My_User"窗口中,左侧“选择页”列表框选择“安全对象”("安全对象"页主要用于设置数据库用户拥有的数据库对象的访问权限),单击右侧“搜索”按钮,打开“添加对象”对话框,选择要添加的对象:“特定类型的所有对象”,单击“确定”按钮。权限管理67权限管理683)在打开的"选择对象类型"对话框中,选择“表”,确定退出。权限管理694)如下图所示,回到"数据库用户-My_User"窗口,此时窗口右侧已包含添加安全对象,选中“Users”表,在窗口下方“dbo.Users权限”列表框中,选择“更新”、“授予”,此时右侧的“列权限”变为可用。权限管理705)单击“列权限”按钮,在弹出的“列权限”对话框下方选择:“UserName”授予,确定退出。完成对表“Users”的“UserName”列设置更新权限操作。权限管理716)切换用户,以“My_User”的身份登录服务器,验证一下对表“Users”的“UserName”列更新操作。角色管理课程简介73通过本课程,结合实例学习角色管理。
主要学习内容:一.角色概念二.服务器角色三.数据库角色角色概念74为了数据库的安全性而逐个设置用户的权限,方法是比较直观方便,但一旦数据库的用户数较多时,设置权限的工作将会变得繁琐而复杂,因此在SQLServer中可通过为角色设置权限来解决此类问题:将用户集中到一个角色单元中,然后对该角色授予适当的权限。用户可根据自己所执行的任务成为一个或多个角色的成员。SQLServer2008中角色分为三类:服务器角色、数据库角色和应用程序角色。服务器角色75SQLServer在服务器级提供了固定服务器角色,这些服务器级角色不能由用户自己创建、修改或删除。这些固定服务器角色一般用于授权给DBA(数据库管理员)的登录名,拥有某个或某些角色的登录名就会获得与相应角色对应的服务器管理权限。服务器角色76在"对象资源管理器"窗口中,展开“安全性”节点下的“服务器角色”节点,即可看到系统创建的固定服务器角色,具体各个角色的权限说明如下表所示:服务器角色77服务器角色允许权限bulkadmin(大容量插入操作管理者)可以运行BULKINSERT语句,从文本文件中将数据导入SQLServer数据表或视图。dbcreator(数据库创建者)可以创建、更改、删除和还原任何数据库diskadmin(磁盘管理员)可以管理数据库在磁盘的文件processadmin(进程管理员)管理SQLServer实例中运行的进程。Public每个SQLServer登录名都属于public服务器角色。Securityadmin(安全管理员)管理登录名及其属性,授予对数据库引擎的访问权限,被视为与sysadmin角色等效。serveradmin(服务管理员)更改服务器范围的配置选项和关闭服务器。setupadmin(安装管理员)可以添加和删除连接服务器,也可以执行部分系统存储过程sysadmin(系统管理员)可以在服务器中执行任何活动服务器角色78【例】将登录名为My_User设置为服务器角色sysadmin的成员,从而使该登录名关联的用户获取相应的权限。服务器角色791)用Windows身份验证或sa登录服务器,在"对象资源管理器"窗口中,展开“安全性”节点→“登录名”节点,右击My_User,在弹出的快捷菜单中选择“属性”命令。服务器角色802)在打开的“登录属性-My_User”窗口中,单击左侧“选择页”列表框中的“服务器角色”,在右侧“服务器角色”列表中,选中“sysadmin”。单击“确定”按钮,完成对登录名的服务器角色的分配即可。数据库角色81使用数据库角色可以为一组数据库用户指定数据库访问的权限。SQLServer提供了固定数据库级角色和自定义数据库角色。1.固定数据库级角色在SQLServer安装时,数据库级别上也有一些预定义的固定数据库角色(如表所示)。在创建数据库时,会自动创建这些内置固定数据库角色。数据库角色82在"对象资源管理器"窗口中,展开任一“数据库”→“安全性”→“角色”→“数据库角色”节点,即可看到系统创建的固定数据库角色,数据库角色83固定数据库角色权限,如下表所示:数据库角色允许权限db_accessadmin可以新建或删除Windows登录、Windows组及SQLServer登录的访问权db_backupoperator可以备份数据库db_datareader可以读取所有用户数据表的所有数据db_datawriter可以添加、删除或修改所有用户数据表中的数据db_ddladmin可在数据库中执行任何“数据定义语言”(DDL)的命令db_denydatareader不能读取数据库中任何用户数据表的数据db_denydatawriter不能添加、修改或删除数据库中任何用户数据表的数据db_owner可以在数据库上执行所有的配置和维护活动、删除数据库d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术装备高端服务保障承诺函3篇
- 关于年度市场推广预算确认的商洽函(5篇)
- 食品安全溯源制度保证承诺书范文7篇
- 安全生产管理规范执行手册
- 2026年师范类物理试题及答案
- 2022年人教部编版三年级语文下册期末测试卷及答案
- 五年级数学(小数除法)计算题专项练习及答案
- 服务器硬件故障紧急更换预案
- 产品交付延迟致歉及后续安排联系函(5篇)范文
- 矿产品加工与质量控制手册
- 《小圣施威降大圣》说课稿-2025-2026学年统编版语文七年级上册
- 2026年全国材料员职业技能水平测试真题及模拟试题(附答案)
- 2024年惠州市龙门县事业单位招聘笔试真题(能力测试)含答案及解析
- 2026中国邮政储蓄银行广西区分行春季校园招聘备考题库及答案详解【历年真题】
- 山东省青岛市西海岸新区达标名校2026届中考数学最后一模试卷含解析
- 2025-2026学年四川省德阳市中考物理模拟试题(含答案解析)
- TSG 92-2026 承压类特种设备安全附件安全技术规程
- 2026浙江建设职业技术学院招聘特殊专业技术岗位人员43人考试参考试题及答案解析
- (正式版)DB37∕T 4976-2025 《河湖生态产品价值核算技术规范》
- 幼儿园内部会计监督制度
- 企业安全环保管理体系及制度
评论
0/150
提交评论