(安全生产)SQL安全,管理备份与恢复

上传人:管****问 文档编号:119481144 上传时间:2020-01-16 格式:DOC 页数:41 大小:1.42MB
返回 下载 相关 举报
(安全生产)SQL安全,管理备份与恢复_第1页
第1页 / 共41页
(安全生产)SQL安全,管理备份与恢复_第2页
第2页 / 共41页
(安全生产)SQL安全,管理备份与恢复_第3页
第3页 / 共41页
(安全生产)SQL安全,管理备份与恢复_第4页
第4页 / 共41页
(安全生产)SQL安全,管理备份与恢复_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《(安全生产)SQL安全,管理备份与恢复》由会员分享,可在线阅读,更多相关《(安全生产)SQL安全,管理备份与恢复(41页珍藏版)》请在金锄头文库上搜索。

1、项目9: CJGL数据库的安全管理对任何企业组织来说,数据的安全性最为重要。安全性主要是指允许那些具有相应的数据访问权限的用户,能够登录到SQL Server并访问数据以及对数据库对象实施各种权限范围内的操作。但是要拒绝所有的非授权用户的非法操作。因此安全性管理与用户管理是密不可分的。SQL Server 2005 提供了内置的安全性和数据保护。SQL Server 2005 的安全性管理是建立在认证(Authentication) 和访问许可(permission) 两者机制上的认证,是指来确定登录SQL Server 的用户的登录账号和密码是否正确以此来验证其是否具有连接SQL Serve

2、r 的权限,但是通过认证阶段并不代表能够访问SQL Server 中的数据用户,只有在获取访问数据库的权限之后才能够对服务器上的数据库进行权限许可下的各种操作,主要是针对数据库对象,如表、视图、存储过程等。这种用户访问数据库权限的设置是通过用户帐号来实现的,同时在SQL Server 中角色作为用户组的代替物大大地简化了安全性管理。能力目标: 能够配置服务器的身份验证模式; 能够创建并配置登录账户; 能够为登录账户配置数据库访问许可; 能够为数据库用户指定数据访问权限; 能够通过角色设置批量实现用户权限管理。知识目标: 熟悉SQL Server 2005的安全机制; 掌握服务器登录账户的管理方

3、法; 掌握数据库用户的权限管理方法; 理解角色的作用;工作任务: 服务器登录账户管理; 数据库用户管理。任务1:服务器登录账户管理【任务描述】:用户要访问数据库,必须具备登录SQL Server服务器的权限,可以通过两种途径登录服务器:一是通过Windows系统用户身份;二是通过有效的SQL Server账户身份。用户如果不通过默认账户登录,则必须为其创建登录账户。 子任务1:创建登录账户Win_User,通过Windows身份验证,并映射到CJGL数据库;子任务2:创建登录账户Sql_User,通过SQL Server身份验证,并映射到CJGL数据库;【预备知识】1、SQL Server 2

4、005身份验证机制安全身份验证用来确认登录SQL Server的用户的登录账号和密码的正确性,由此来检验该用户是否具有连接SQL Server服务器的权限。任何用户在使用SQL Server服务器之前,必须经过身份验证。SQL Server 2005提供了两种身份验证模式,分别是Windows身份验证和SQL Server身份验证。1.1 Windows身份验证SQL Server服务器运行于Windows服务器之上,而Windows作为网络操作系统,本身具备管理登录、验证用户是否合法的能力,因此Windows身份验证模式就是用户通过自己合法的Windows账户和口令进行验证,只要用户具备登录

5、操作系统的权限,即可连接SQL Server服务器1.2 SQL Server身份验证启用该模式通常也称为“混合验证模式”,该认证模式下,用户连接SQL Server服务器必须提供登录名和密码,这些登录信息存储在系统表syslogins中,与Windows账号无关。注意:如果SQL Serve服务器启用了混合验证模式,则不但可以通过SQL Server账号登录,也可以请求Windows验证,然后通过Windows账户登录。Windows身份验证安全性要比SQL Server验证高的多,因为SQL Server服务器相比,操作系统具有更高的安全机制。【任务实施】子任务1:创建登录账户Win_Us

6、er,通过Windows身份验证,并映射到CJGL数据库;1、创建Windows系统账户,账户名为Win_User,步骤如下:(1)在“桌面”右键单击,选择“管理”,打开计算机管理窗口;(2)展开“本地用户和组”节点,右键单击“用户”,选择“新用户”命令,如下所示:(3)然后在弹出的新用户对话框中输入用户名及密码,如下所示:(4)单击“创建”按钮。2、将SQL Serve身份验证方式改为“Windows验证”:(1)以系统管理员账户登录SQL Server服务器,如下所示:(2)在服务器节点上右键单击,选择“属性”,如下所示:(3)在弹出的服务器属性窗口中,选择“安全性”节点,然后在右边选中“

7、Windows身份验证模式”,如下所示:(4)更改后,必须重启服务器才能是设置生效,如下所示:(5)单击“确定”后,在服务器节点上右键单击,选择“重新启动”,如下所示:3、将Win_User设置为SQL Server登录账户(1)展开选择服务器节点下的“安全性”节点,在“登录名”节点右键单击,选择“新建登录名”(2)在弹出的“登录名”窗口中,单击“搜索”按钮(如果要输入登录名,必须确保输入正确),如下所示:(3)在弹出的“选择用户和组”对话框中,单击“高级”按钮,如下所示:(4)然后单击“立即查找”按钮,在下面列出的对象中选择“Win_User”,如下所示:(5)单击“确定”按钮,这时候在登录

8、名文本框中会出现“FANXINGANGWin_User”(这里的FANXINGANG视具体机器而定)(6)用户映射(即使该登录账户具有访问数据库的权限):在“登录名”窗口中,选择“用户映射”项,然后在数据库列表中选择“CJGL”,“数据库角色成员身份”保持默认。如下所示:(7)将Win_User设置为SQL Server登录账户后,可以通过Windows系统的切换用户方式,以Win_User登录操作系统,然后再连接SQL Server服务器,过程略。(8)登录账号创建成功后,可以通过该账号进行连接SQL Server服务器,登录服务器后,只能访问CJGL数据库,而不具备访问其他数据库的权限。比

9、如要向访问“BooK”数据库,将会出现以下错误:子任务2:创建登录账户Sql_User,通过SQL Server身份验证,并映射到CJGL数据库;1、将SQL Server服务器身份验证方式改为“SQL Server和Windows身份验证模式”,过程同上;2、重启服务器后,如上述过程打开“登录名”窗口,然后在登录名文本框中输入“SQL_User”,选中“SQL Server身份验证”单项按钮,输入密码及确认密码。如下所示:3、用户映射方式同上,不再赘述。任务2:数据库用户管理【任务描述】创建了登录账户后,实际上只具备了连接服务器的权限,即便在创建登录账户的时候进行了用户映射,默认状态下,映射

10、后的数据库用户的数据库角色是“public”,仍旧不具备访问用户定义对象的权限,因此需要为数据库创建相应用户并赋予相应权限。子任务1:为CJGL数据库创建用户“DB_User”,该用户通过登录账户“SQL_User”登录服务器;子任务2:对用户“DB_User”进行权限设置,其权限如下表所示(“*”表示具备权限):安全对象权限SELECTINSERTUPDATEDELETEdepartment*Class*Student*Course*Teacher*Timetable*score*子任务3:创建数据库角色“User_Role”,其安全对象及权限设置为上表所示,并将数据库用户“DB_User”

11、的数据库角色设置为“User_Role”【预备知识】1、数据库用户与架构1.1 数据库用户登录名:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中数据库用户名:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。SQL SERVER把登录名与用户名的关系称为映射。用登录名登录SQL SERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中是否存在与此登录名关联的用户名,若存在

12、就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库。一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个数据库中只能有一个用户名通过该登录名登录。好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库。登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙。一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。连接SQL Server服务器使用的是登录名而不是数据库用户名。SQLSERVER中有几个特殊的登录名和用户名:我们常见的dbo(用户名)是指以sa(登录名)或windows administratio

13、n(Windows集成验证登录方式)登录的用户,也就是说数据库管理员在SQL SERVER中的用户名就叫dbo,而不叫 sa,这一点看起来有点蹊跷,因为通常用户名与登录名相同(不是强制相同,但为了一目了然通常都在创建用户名时使用与登录名相同的名字),例如创建了一个登录名称为me,那么可以为该登录名me在指定的数据库中添加一个同名用户,使登录名me能够访问该数据库中的数据.当在数据库中添加了一个用户me 后,之后以me登录名登录时在该数据库中创建的一切对象(表,函数,存储过程等)的所有者都为me,如me.table1,me.fn_test(),而不是dbo.table1,dbo.fn_test(

14、)。SQL Server中还有一个特殊的数据库角色public,它存在于每一个数据库中,包括系统数据库,如master、msdb、model和用户数据库,数据库的所有用户都属于public角色,并且不能从public角色中删除。在SQLSERVER数据库中,guest帐户是特殊的用户帐户。如果用户使用USE database语句访问的数据库中没有与此用户关联的帐户,此用户就与guest用户相关联。1.2 架构(schema)以往 SQL Server 内的对象命名是“服务器.数据库.用户名.对象”,但SQL Server 2005版本后的对象命名改为“服务器.数据库.Schema.对象”。这让

15、你规划数据库对象命名时更有弹性。架构是形成单个命名空间的数据库实体的集合。命名空间是一个集合,其中每个元素的名称都是唯一的。数据库引擎权限层次结构之间的关系图在 SQL Server 2005 中,架构独立于创建它们的数据库用户而存在,亦即用户与架构分离,这种机制具有以下优点: 多个用户可以通过角色成员身份或 Windows 组成员身份拥有一个架构。这扩展了允许角色和组拥有对象的用户熟悉的功能。 极大地简化了删除数据库用户的操作:删除数据库用户不需要重命名该用户架构所包含的对象。因而,在删除创建架构所含对象的用户后,不再需要修改和测试显式引用这些对象的应用程序。 用户与架构(schema)分开,让数据库内各对象再绑在某个用户账号上,可以解决之前版本“用户离开公司”问题,也就是在拥有该对象的用户离开公司,或离开该职务时,必要大费周章地改该用户所有的对象属于新的用户所有。 另外,也可让 DBA 在安装某个套装软件时,设置该套装软件所用的数据库对象都属于某个特定的架构,容区别。也就是说,在单一数据库内,同部门或目的的对象,可以通过架构区分同的对象命名原则与权限。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号