[精选]第9章 系统安全管理7562.pptx
《[精选]第9章 系统安全管理7562.pptx》由会员分享,可在线阅读,更多相关《[精选]第9章 系统安全管理7562.pptx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9章章 系统安全管理系统安全管理9.1SQLServer2005的安全机制9.2 建立和管理用户账户建立和管理用户账户9.3 服务器角色与数据库角色服务器角色与数据库角色9.4 数据库权限的管理数据库权限的管理9.5 数据库架构的定义和使用数据库架构的定义和使用9.1 SQL Server 2005的安全机制的安全机制9.1.1 SQL Server 2005的身份验证模式的身份验证模式SQLServer2005的身份验证模式是指系统确认用户的方式。SQLServer2005有两种身份验证模式:Windows验证模式和SQLServer验证模式。如图9.1所示给出了这两种方式登录SQLSe
2、rver服务器的情形。图9.1两种验证方式登录SQLServer服务器的情形9.1.1 SQL Server 2005的身份验证模式的身份验证模式h1Windows验证模式验证模式用户登录Windows时进行身份验证,登录SQLServer时就不再进行身份验证。以下是对于Windows验证模式登录的几点重要说明:(1)必须将Windows账户加入到SQLServer中,才能采用Windows账户登录SQLServer。(2)如果使用Windows账户登录到另一个网络的SQLServer,必须在Windows中设置彼此的托管权限。h2SQL Server验证模式验证模式在SQLServer验证模
3、式下,SQLServer服务器要对登录的用户进行身份验证。当SQLServer在WindowsXP或Windows2000/2003上运行时,系统管理员设定登录验证模式的类型可为Windows验证模式和混合模式。当采用混合模式时,SQLServer系统既允许使用Windows登录名登录,也允许使用SQLServer登录名登录。9.1.2 SQL Server 2005的安全性机制的安全性机制(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQLServer2005中的登录名主要有两种:第一种是Wi
4、ndows登录名,第二种是SQLServer登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。SQLServer登录名对应SQLServer验证模式,在该验证模式下,能够使用的账户类型主要是SQLServer账户。(2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。用户安全对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相
5、应的数据库。9.1.2 SQL Server 2005的安全性机制的安全性机制(3)架构级别所包含的安全对象主要有表、视图、函数、存储过程、类型、同义词、聚合函数等。架构的作用简单地说是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。数据库中的每一个用户都会有自己的默认架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。至于操作的权限则由数据库角色所决定。一个数据库使用者,想要登录服务器上的SQLServer数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过
6、如图9.2所示的安全验证。图9.2SQLServer数据库安全验证9.2 建立和管理用户账户建立和管理用户账户9.2.1 界面方式管理用户账户界面方式管理用户账户h1建立建立Windows验证模式的登录名验证模式的登录名步骤如下(在此以WindowsXP为例):第1步创建Windows的用户。以管理员身份登录到WindowsXP,选择“开始”打开“控制面板”中的“性能和维护”选择其中的“管理工具”双击“计算机管理”,进入“计算机管理”窗口。在该窗口中选择“本地用户和组”中的“用户”图标右击,在弹出的快捷菜单中选择“新用户”菜单项,打开“新用户”窗口。如图9.3所示,在该窗口中输入用户名、密码,
7、单击“创建”按钮,然后单击“关闭”按钮,完成新用户的创建。图9.3创建新用户的界面9.2.1 界面方式管理用户账户界面方式管理用户账户第2步将Windows账户加入到SQLServer中。以管理员身份登录到SQLServerManagementStudio,在“对象资源管理器”中,找到并选择如图9.4所示的“登录名”项。右击鼠标,在弹出的快捷菜单中选择“新建登录名”,打开“登录名-新建”窗口。图9.4新建登录名9.2.1 界面方式管理用户账户界面方式管理用户账户如图9.5所示,可以通过单击“常规”选项页的“搜索”按钮,在“选择用户或组”对话框中选择相应的用户名或用户组添加到SQLServer2
8、005登录用户列表中。例如,本例的用户名为:0BD7E57C949A420liu(0BD7E57C949A420为本地计算机名)。图9.5新建登录名9.2.1 界面方式管理用户账户界面方式管理用户账户h2建立建立SQL Server验证模式的登录名验证模式的登录名要建立SQLServer验证模式的登录名,首先应将验证模式设置为混合模式。本书在安装SQLServer时已经将验证模式设为了混合模式。如果用户在安装SQLServer时验证模式没有设置为混合模式,则先要将验证模式设为混合模式。步骤如下:第1步在“对象资源管理器”中选择要登录的SQLServer服务器图标,右击鼠标,在弹出的快捷菜单中选
9、择“属性”菜单项,打开“服务器属性”窗口。第2步在打开的“服务器属性”窗口中选择“安全性”选项页。选择身份验证为“SQLServer和Windows身份验证模式”,单击“确定”按钮,保存新的配置,重启SQLServer服务即可。创建SQLServer验证模式的登录名也在如图9.5所示的界面中进行,输入一个自己定义的登录名,例如david,选中“SQLServer身份验证”选项,输入密码,并将“强制密码过期”复选框中的勾去掉,设置完单击“确定”按钮即可。9.2.1 界面方式管理用户账户界面方式管理用户账户为了测试创建的登录名能否连接SQLServer,可以使用新建的登录名david来进行测试,具
10、体步骤如下:在“对象资源管理器”窗口中单击“连接”,在下拉框中选择“数据库引擎”,弹出“连接到服务器”对话框。在该对话框中,“身份验证”选择“SQLServer身份验证”,“登录名”填写david,输入密码,单击“连接”按钮,就能连接SQLServer了。登录后的“对象资源管理器”界面如图9.6所示。图9.6使用SQLServer验证方式登录9.2.1 界面方式管理用户账户界面方式管理用户账户h3管理数据库用户管理数据库用户使用“SQLServerManagementStudio”创建数据库用户账户的步骤如下(以PXSCJ为例):以系统管理员身份连接SQLServer,展开“数据库”“PXSC
11、J”“安全性”选择“用户”,右击鼠标,选择“新建用户”菜单项,进入“数据库用户-新建”窗口。在“用户名”框中填写一个数据库用户名,“登录名”框中填写一个能够登录SQLServer的登录名,如david。注意:一个登录名在本数据库中只能创建一个数据库用户。选择默认架构为dbo,如图9.7所示,单击“确定”按钮完成创建。9.2.1 界面方式管理用户账户界面方式管理用户账户图9.7新建数据库用户账户9.2.2 命令方式管理用户账户命令方式管理用户账户h1创建登录名创建登录名在SQLServer2005中,创建登录名可以使用CREATELOGIN命令。语法格式:CREATELOGINlogin_nam
12、eWITHPASSWORD=passwordHASHEDMUST_CHANGE,./*WITH子句用于创建SQLServer登录名*/|FROM/*FROM子句用户创建其他登录名*/WINDOWSWITH,.|CERTIFICATEcertname|ASYMMETRICKEYasym_key_name9.2.2 命令方式管理用户账户命令方式管理用户账户其中::=SID=sid|DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|CHECK_EXPIRATION=ON|OFF|CHECK_POLICY=ON|OFFCREDENTIAL=cred
13、ential_name:=DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language【例9.1】使用命令方式创建Windows登录名tao(假设Windows用户tao已经创建,本地计算机名为0BD7E57C949A420),默认数据库设为PXSCJ。USEmasterGOCREATELOGIN0BD7E57C949A420taoFROMWINDOWSWITHDEFAULT_DATABASE=PXSCJ9.2.2 命令方式管理用户账户命令方式管理用户账户只有在WindowsServer2003及更高版本上才会强制执行CHECK_EXPIRATION和
14、CHECK_POLICY。【例9.2】创建SQLServer登录名sql_tao,密码为123456,默认数据库设为PXSCJ。CREATELOGINsql_taoWITHPASSWORD=123456,DEFAULT_DATABASE=PXSCJ9.2.2 命令方式管理用户账户命令方式管理用户账户h2删除登录名删除登录名删除登录名使用DROPLOGIN命令。语法格式:DROPLOGINlogin_namelogin_name为要删除的登录名。【例9.3】删除Windows登录名tao。DROPLOGIN0BD7E57C949A420tao【例9.4】删除SQLServer登录名sql_tao
15、。DROPLOGINsql_taoh3创建数据库用户创建数据库用户创建数据库用户使用CREATEUSER命令。语法格式:CREATEUSERuser_nameFOR|FROMLOGINlogin_name|CERTIFICATEcert_name|ASYMMETRICKEYasym_key_name|WITHOUTLOGINWITHDEFAULT_SCHEMA=schema_name9.2.2 命令方式管理用户账户命令方式管理用户账户h4删除数据库用户删除数据库用户删除数据库用户使用DROPUSER语句。语法格式:DROPUSERuser_nameuser_name为要删除的数据库用户名,在删
16、除之前要使用USE语句指定数据库。【例9.6】删除PXSCJ数据库的数据库用户tao。USEPXSCJGODROPUSERtao9.3 服务器角色与数据库角色服务器角色与数据库角色9.3.1 固定服务器角色固定服务器角色服务器角色独立于各个数据库。如果在SQLServer中创建一个登录名后,要赋予该登录者具有管理服务器的权限,此时可设置该登录名为服务器角色的成员。SQLServer提供了以下固定服务器角色:lsysadmin:系统管理员,可对SQLServer服务器进行所有的管理工作,为最高管理角色。这个角色一般适合于数据库管理员(DBA)。lsecurityadmin:安全管理员,可以管理登
17、录和CREATEDATABASE权限,还可以读取错误日志和更改密码。lserveradmin:服务器管理员,具有对服务器进行设置及关闭服务器的权限。lsetupadmin:设置管理员,添加和删除链接服务器,并执行某些系统存储过程。lprocessadmin:进程管理员,可以用来结束进程。ldiskadmin:用于管理磁盘文件。ldbcreator:数据库创建者,可以创建、更改、删除或还原任何数据库。lbulkadmin:可执行BULKINSERT语句,但是这些成员对要插入数据的表必须有INSERT权限。BULKINSERT语句的功能是以用户指定的格式复制一个数据文件至数据库表或视图。9.3.1
18、 固定服务器角色固定服务器角色h1通过通过“对象资源管理器对象资源管理器”添加服务器角色成员添加服务器角色成员第1步以系统管理员身份登录到SQLServer服务器,在“对象资源管理器”中展开“安全性”“登录名”选择登录名,例如“0BD7E57C949A420liu”,双击或单击右键选择“属性”菜单项,打开“登录属性”窗口。第2步在打开的“登录属性”窗口中选择“服务器角色”选项页。如图9.8所示,在“登录属性”窗口右边列出了所有的固定服务器角色,用户可以根据需要,在服务器角色前的复选框中打勾,来为登录名添加相应的服务器角色。单击“确定”按钮完成添加。图9.8SQLServer服务器角色设置窗口9
19、.3.1 固定服务器角色固定服务器角色h2利用系统存储过程添加固定服务器角色成员利用系统存储过程添加固定服务器角色成员利用系统存储过程sp_addsrvrolemember可将一登录名添加到某一固定服务器角色中,使其成为固定服务器角色的成员。语法格式:sp_addsrvrolememberloginame=login,rolename=role参数含义:login指定添加到固定服务器角色role的登录名,login可以是SQLServer登录名或Windows登录名;对于Windows登录名,如果还没有授予SQLServer访问权限,将自动对其授予访问权限。固定服务器角色名role必须为sys
20、admin、securityadmin、serveradmin、setupadmin、processadmin、diskadmin、dbcreator、bulkadmin之一。【例9.7】将Windows用户0BD7E57C949A420liu添加到sysadmin固定服务器角色中。EXECsp_addsrvrolemember0BD7E57C949A420liu,sysadmin9.3.1 固定服务器角色固定服务器角色h3利用系统存储过程删除固定服务器角色成员利用系统存储过程删除固定服务器角色成员利用sp_dropsrvrolemember系统存储过程可从固定服务器角色中删除SQLServe
21、r登录名或Windows登录名。语法格式:sp_dropsrvrolememberloginame=login,rolename=role参数含义:login:将要从固定服务器角色删除的登录名。role:服务器角色名,默认值为NULL,必须是有效的固定服务器角色名。说明:(1)不能删除sa登录名。(2)不能从用户定义的事务内执行sp_dropsrvrolemember。(3)sysadmin固定服务器角色的成员执行sp_dropsrvrolemember,可删除任意固定服务器角色中的登录名,其他固定服务器角色的成员只可以删除相同固定服务器角色中的其他成员。【例9.8】从sysadmin固定服务
22、器角色中删除SQLServer登录名david。EXECsp_dropsrvrolememberdavid,sysadmin9.3.2 固定数据库角色固定数据库角色(1)db_owner:数据库所有者,这个数据库角色的成员可执行数据库的所有管理操作。用户发出的所有SQL语句均受限于该用户具有的权限。例如,CREATEDATABASE仅限于sysadmin和dbcreator固定服务器角色的成员使用。sysadmin固定服务器角色的成员、db_owner固定数据库角色的成员以及数据库对象的所有者都可授予、拒绝或废除某个用户或某个角色的权限。使用GRANT赋予执行T-SQL语句或对数据进行操作的权
23、限;使用DENY拒绝权限,并防止指定的用户、组或角色从组和角色成员的关系中继承权限;使用REVOKE取消以前授予或拒绝的权限。(2)db_accessadmin:数据库访问权限管理者,具有添加、删除数据库使用者、数据库角色和组的权限。(3)db_securityadmin:数据库安全管理员,可管理数据库中的权限,如设置数据库表的增加、删除、修改和查询等存取权限。(4)db_ddladmin:数据库DDL管理员,可增加、修改或删除数据库中的对象。(5)db_backupoperator:数据库备份操作员,具有执行数据库备份的权限。(6)db_datareader:数据库数据读取者。9.3.2 固
24、定数据库角色固定数据库角色(7)db_datawriter:数据库数据写入者,具有对表进行增加、删修、修改的权限。(8)db_denydatareader:数据库拒绝数据读取者,不能读取数据库中任何表的内容。(9)db_denydatawriter:数据库拒绝数据写入者,不能对任何表进行增加、删修、修改操作。(10)public:是一个特殊的数据库角色,每个数据库用户都是public角色的成员,因此不能将用户、组或角色指派为public角色的成员,也不能删除public角色的成员。通常将一些公共的权限赋给public角色。h1使用使用“对象资源管理器对象资源管理器”添加固定数据库角色成员添加固
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 精选第9章 系统安全管理7562 系统安全 管理 7562
限制150内