在SQL2005中新增了一些SQL2000没有的功能,这些新增的功能可以使我们的SQL server服务器的数据更加的安全。
在2005中新增了架构,架构的特点:
1、 与用户管理没有从属关系
2、 创建用户的时候可以直接指定默认架构
3、 不知定默认属于dbo(权限最大)
4、 如果存在架构名.对象名,访问对象时在制定架构中找如果没有则查找dbo
那架构有什么用呢?
比如有好多用户的权限是相同的可以直接加入同一个架构中不用再挨个分配权限。
我们来创建一个用户直接为这个用户指定架构,如图:
我们以hlj用户登陆
登陆上去了,查看没有问题,看看插入怎么样。
是不让插入的因为权限不够,如果想插入那么就给这个架构更高的权限吧。
角色的作用相当于windows中的组权限相同用户的集合。
角色分为三种:1、服务器角色
2、数据库角色
3、用户自定义数据库角色
这个比较简单如图:
下面我们来看数据库存储的安全性。
包括:硬件设备,比较好的是光纤通道存储中枢,但是比较贵。
备份的方式(主要包括:完全备份、差异备份、事务日志备份)
恢复方式:1、完全模式(full,备份所有日志)
2、大容量日志(bulk_logged,大量日志不能备份)
3、简单模式(simple,所有日志都不保存,不支持即时还原)
恢复方式是制约备份方法的,完全模式可以进行完全/差异以及事务日志备份,而下面两种不能完全支持这几种备份方法。
查看数据库的恢复模式是:
select * from sys.databases
Db1这个数据库的恢复模式是full我们来修改为简单simple
命令为select * from sys.databases
在备份的时候我们可以备份到一个备份设备或备份到一个文件。
先来创建一个备份设备, 在C盘建一个名为bak的文件夹
sp_addumpdevice ‘disk’,’db1bak’,’c:\bak\db1bak.bak’
例:对db1进行完全备份,备份到备份设备中
backup database db1 to db1bak
我们来删除db1这个库,然后再来回复这个库
drop database db1
restore database db1 from db1bak
我们来插入一条记录,然后再做一下差异备份命令如下,
利用命令来查看一下备份方式,1(完全备份)、5(差异备份)、2(事务日志备份)
好了,开始删除db1这个数据库并还原这个数据库
在还原的时候我们必须得先还原第一次备份的,然后再还原第二次备份的才可以哦,如图:
restore database db1 from db1bak with file=1,norecovery(未封口)
restore database db1 from db1bak with file=2,recovery(封口)
还原好了看我们刚才插入的那条记录是否存在呢?
没有问题是存在的,事务日志的备份与这两种类似,我们就不举例了。
我们这都是备份我们自己创建的数据库,那系统的数据库是不是也和这一样呢?答案是否,接下来如果把系统数据库master删除了,看怎么恢复啊。
大致步骤是:
1、 备份master数据库
2、 删除master数据库
3、 生成临时master(需要安装光盘)
4、 用单用户进入SQL中
5、 正常启用SQL
先来第一步备份master,这步与刚才备份的一样。
但是删除就与刚才的有点区别了,用命令是不让删除的,因为它是系统库。
要删除系统数据库我们必须先把此服务给停止了,利用什么方法都行。
停止了服务以后我们找到存放数据库的目录在C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data,然后找到master数据库的有关文件点击右键删除
生成临时master,放进安装光盘
在dos中输入
D:\> start /wait d:\setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 sapwd=Ccjsj1200 (密码)
在这步我们在上面那个目录中看到我们删除的master数据库又会来了,这就对了。我们就可以下一步了。
进入单用户模式后,我们来启用SSMS,进入后断开连接——新建查询——进行还原
还原成功后看看是否能用
能用一切正常,还原成功!!!
下篇我将介绍数据在传输中的安全!!!!敬请期待!!!!
本文转自 liuyonglei 51CTO博客,原文链接:http://blog.51cto.com/liuyonglei/167162,如需转载请自行联系原作者