《安全生产_数据库安全性控制课件》由会员分享,可在线阅读,更多相关《安全生产_数据库安全性控制课件(43页珍藏版)》请在金锄头文库上搜索。
1、第 8 章,第8章 SQL Server 2005数据库控制与维护,数据库应用教程,8.2.1 SQL Server的安全机制,8.2.2 服务器登录帐号的管理,8.2.3 数据库用户管理,8.2 数据库的安全性控制,8.2.4 管理权限,8.2 数据库的安全性管理,一个机构建立数据库的目的是为了数据库中的数据能够被机构中的用户共享访问,但数据库中的数据不能被破坏,重要数据(如银行账号的密码)也只能由具有特殊权力的人员访问,因此数据库系统必须能够预防来自机构内部或外部的人对数据的故意破坏或窃取。可见,安全性是数据库设计的重要组成部分。,所谓数据库的安全性:是指保护数据以防止因不合法的使用而造成
2、数据的泄密和破坏。为保证数据库的安全性,需要采取一定的安全保护措施。,SQL Server的安全模型,增删 改查,增删 改查,增删 改查,增删 改查,增删 改查,增删 改查,数据库用户,数据库用户,数据库用户,登录帐号,SQLserver三层安全管理,数据表1 数据表2,DB1,数据表1 数据表2,DB2,数据表1 数据表2,DB3,8.2.1 SQL Server的安全机制,SQL Server 2000的安全机制包括身份验证和权限验证两个方面 。,1SQL Server的身份验证模式,用户要想访问SQL Server数据库中的数据,必须以合法身份登录到SQL Server服务器上,SQL
3、Server或者操作系统对用户的身份进行验证,这一阶段称为身份验证阶段(Authentication)。SQL Server身份验证有两种模式:Windows身份验证模式和混合身份验证模式。,在企业管理器,展开“服务器组”节点,在其中的某个SQL Server服务器上单击鼠标右键,在弹出的快捷菜单中选择“编辑SQL Server注册属性”菜单项,将会打开 “已注册的SQL Server属性”对话框。在该对话框中可以设置身份验证模式。,登录方式,登录验证有两种方式: SQL身份验证:适合于非windows平台的用户或Internet用户, 需要提供帐户和密码 Windows身份验证:适合于win
4、dows平台用户,不需要提供密码,和windows集成验证 登录帐户相应有两种::SQL 帐户和Windows帐户,创建登录账户,使用SQL语句创建两种模式下的登录帐户 添加WINDOWS登录帐户 添加SQL登录帐户,EXEC sp_grantlogin windows域名域帐户,EXEC EXEC sp_addlogin 帐户名,密码,创建登录账户,添加Windows登录帐户 /windows用户为S01,SDXY表示域 如是本机,SDXY为计算机名 EXEC sp_grantlogin SDXYS01 添加SQL登录帐户 /登录名为zhangsan,密码为1234 EXEC sp_addl
5、ogin zhangsan, 1234 GO,演示:创建登录帐户,创建数据库用户,创建了登录帐户,只能登录到SQL Server系统,但还不能访问某个数据库。如果希望访问某个数据库,必须要成为该数据库的一个用户。 创建数据库用户需要调用系统存储过程sp_grantdbaccess 在empDB中添加两个用户,EXEC sp_grantdbaccess 登录帐户,数据库用户,USE empDB - S01DBUser为数据库用户名 EXEC sp_grantdbaccess SDXYS01,S01DBUser EXEC sp_grantdbaccess zhangsan,zhangsanDBUs
6、er,演示:创建数据库用户,8.2.1 SQL Server的安全机制,2权限验证,当用户通过身份验证登录到SQL Server服务器上后,还必须经过权限验证以决定他能访问的数据库及对访问的数据库所允许执行的操作。,为了对数据库中的对象设置安全权限,每个数据库都要求设置单独的用户账号。因此在SQL Server中,账号有两种:登录账号和数据库用户账号。,登录账号属于服务器层面的,本身并不能让用户访问服务器中的数据库。登录用户要想访问数据库,应先把他加入到数据库中使他成为数据库用户,即在数据库中有一个关联的数据库用户账号,数据库用户账号可以与用户账号同名也可以不同名。,如果登录账号在数据库中不存
7、在对应的数据库用户账号,若数据库中存在Guest账号,则登录用户可以使用Guest账号访问数据库。登录账号对应的数据库用户账号的数据库访问权限决定了用户在数据库中可以进行哪些操作。,用户获得对数据库的访问权限以后,就可以存取数据库了。,8.2.2 服务器登录账号的管理,1查看登录账号,可使用企业管理器查看登录账号,方法是在企业管理器中,展开相应的SQL Server服务器节点,再展开其下的“安全性”节点,单击其下的“登录”图标,在右侧的“内容显示”窗口中将显示出系统创建的默认登录账户以及已建立的其他登录账户 。,如果采用的是Windows NT Server操作系统,将会有三个默认账号,含义如
8、下:,BUILTINAdministrators:凡是Windows NT Server/2000中的Administrators组的账号都允许作为SQL Server登录账号使用。,域名Administrator:允许Windows NT Server的Administrator账号作为SQL Server登 录账号使用。,sa:SQL Server系统管理员登录账号,该账号拥有最高的管理权限,可以执行服务器范围内的所有操作。通常SQL Server管理员也是Windows NT或Windows Server 2000的管理员。,8.2.2 服务器登录账号的管理,2创建登录账号,【例8-19
9、】为SQL Server服务器创建一个登录账号,账号名为CollegeMISAdm,密码为tah980808,只能访问CollegeMIS数据库。该登录账号的服务器角色为Database Creator。,(1)在企业管理器中,依次展开至本地服务器(TAHSJ)下的“安全性”节点,在其下的“登录”图标上单击右键,在出现的快捷菜单中选择“新建登录”菜单项,将会出现“SQL Server登录属性新建登录”对话框。,(2)在该对话框“常规”页,输入登录名称为“CollegeMISAdm”,选中“SQL Server身份验证”单选钮并输入密码,在“数据库”后面的下拉式列表框中选择“CollegeMIS
10、”数据库,(3)单击“服务器角色”页标签,选中服务器角色为“Database Creator”,(4)“数据库访问”页设置。,(5)再次输入确认密码。,8.2.2 服务器登录账号的管理,2创建登录账号,角色(Role)是一组具有相同权限的用户所构成的组,在SQL Server中可分为服务器角色与数据库角色。,服务器角色是负责管理与维护SQL Server的登录账号组,一般应指定管理服务器的登录账号属于哪个服务器角色。SQL Server在安装过程中定义几个固定的服务器角色,8.2.2 服务器登录账号的管理,3登录账号属性修改,在企业管理器中,展开至SQL Server服务器的“安全性”节点,单
11、击其下的“登录”图标,在右侧的“内容显示”窗口中将显示出所有的登录账号。在相应登录账号上单击右键,在出现的快捷菜单中选择“属性”菜单项,将会出现 “SQL Server登录属性”对话框,在该对话框中可以对登录账号的属性进行修改,修改完成后按“确定”按钮即可。,例如,若要暂时禁止一个使用Windows身份验证的登录账户连接到SQL Server,只需在“SQL Server登录属性”对话框中,选择“常规”页,然后选取“拒绝访问”复选框即可。若要暂时禁止一个使用SQL Server身份验证的登录账号连接到SQL Server,只需要修改该账户的登录密码,当允许该账户登录时,再把密码改回即可。,在企
12、业管理器中,展开至SQL Server服务器的“安全性”节点,单击其下的“登录”图标,在右侧的“内容显示”窗口中将显示出所有的登录账号。在相应登录账号上单击右键,在出现的快捷菜单中选择“删除”菜单项(或选中相应登录账号,直接按Delete键),在出现的“确认”对话框中单击“是”按钮即可。,4删除登录账号,8.2.3 数据库用户管理,SQL Server系统安装后,master、tempdb、msdb等默认数据库包含两个数据库用户账号:dbo和guest。任何一个登录账号都可以通过它的guest用户账号来存取相应的数据库。但在在SQL Server中新建一个数据库时,默认只有dbo用户账号而没有
13、guest用户账号。因此要让其他的登录账号具有访问新建的数据库的权限,必须使登录账号关联一个新建的数据库的用户账户。,每个登录账号在一个数据库中只能有一个用户账号,但每个登录账号可以在不同的数据库中各有一个用户账号。登录账号具有对某个数据库的访问权限,并不表示该登录账号对该数据库具有存取的权限,如果要对数据库对象进行插入、更新、删除等操作,还需要设置用户账号的权限。,需注意的是除master和tempdb数据库中的guest用户账号不能删除外,其他数据库中的guest用户账号都可以删除。,8.2.3 数据库用户管理,1创建数据库用户账号,【例8-20】为Pubs数据库创建一个数据库用户账号,账
14、号名为“CollegeMISAdmPubs”,角色为public、db_datareader和db_datawriter。,(1)在企业管理器中,展开SQL Server服务器下的“数据库”节点,展开Pubs数据库,在其下的“用户”图标上单击右键,在出现的快捷菜单中选择“新建数据库用户”菜单项,将会出现“数据库用户属性”对话框。,(2)在“数据库用户属性”对话框中的“登录名”后面的下拉式列表框中选取“CollegeMISAdm”登录名,用户名自动变为“CollegeMISAdm”,把该名称改为“CollegeMISAdmPubs”(若不修改,则数据库用户账号和登录账号名称一致)。选取数据库角色
15、为public、db_datareader和db_datawriter 。,(3)单击“确定”按钮,即可为pubs数据库创建了一个数据库用户,用户名为“CollegeMISAdmPubs”。,8.2.3 数据库用户管理,数据库角色:,和登录账号类似,用户账号也可以分成组,称为数据库角色(Database Roles)。在实际应用中,可以建立一个角色来代表机构中一类拥有相同权限的工作人员,然后给这个角色授予适当的权限。在SQL Server中,数据库角色可分为两种:标准角色和应用程序角色。标准角色是由数据库用户或其他的数据库角色所组成的组,组中的每个数据库用户或角色称为成员,应用程序角色不包括任
16、何成员,主要用来控制应用程序存取数据库。在创建一个数据库时,系统默认创建10个固定的标准角色。,8.2.3 数据库用户管理,2设置数据库用户账号的权限,在创建数据库用户账号时,“数据库用户属性”对话框中“登录名”右侧的“权限”按钮是灰色的,表示不能在创建数据库用户账号的同时设置其权限。但可以在创建数据库用户账号后再通过其属性对话框来设置权限。,例:为CollegeMIS数据库的数据库用户账号CollegeMISAdm设置用户权限。,起始步骤:在企业管理器中,展开至CollegeMIS数据库,单击“用户”图标,在右侧的内容显示窗口中将显示出该数据库的所有用户账号。在“CollegeMISAdm”用户账号上单击右键,在出现的快捷菜单中选择“属性”菜单项,将会出现 “数据库用户属性”对话框。,8.2.3 数据库用户管理,2设置数据库用户账号的权限,授予权限、禁止权限和撤消权限的含义如下。,授予权限。即允许某个用户或角色对一个对象执行某种操作或某种语句。,拒绝访问。即