论数据安全

来源:百度文库 编辑:神马文学网 时间:2024/04/29 13:01:56
论数据安全在信息极度膨胀的当今社会,人们对信息的依赖程度越来越紧密,因此对信息系统中的数据的可靠和信息的安全要求也越来越高。本文着重对以计算机、网络传输等为载体的信息链作简要阐述,对如何保证其安全提供一些方法。(对 SQL  Server2005)SQL Server 2005有不同的版本:企业版、标准版、开发版、工作组、移动版和学习版。SQL Server 2005比SQL Server 2000有许多增强的功能。一、    安全性的增强二、    Transaction-SQL增强三、    面向开发人员的功能增强四、    管理能里的增强五、    可用性的增强 首先介绍数据安全性的几个重要方面:1:SQL Server服务器本身的配置有载体安全配置性和相关安全配置。2:用户3:存储(解决数据冗余问题)4:网洛传输的安全性5:数据的加密技术下面我们具体阐述数据的管理机制:载体安全性:1.       最新补丁2.       完全的文件系统3.       使用组策略或注册表加强安全性4.       安装正版的杀毒软件相关的安全配置:1.物理安全性2.网络安全性3.数据库安全性4.对数据进行加密物理安全性: 不要不相关的人接触就可以了(自己的理解,嘿嘿)网络安全性:关闭不要的网络服务数据库安全性又分为用户安全.储存安全.网络安全.加密安全 用户管理两种用户:1:windows2:sql server用户的身份验证方式:1:win 验证2:混合验证、主策略:1:密码策略2:锁定策略3:架构(schema)下面我们用实例来操作验证:例1:首先创建一个windows 用户ZS,只能对yuangong 表的内容进行select 权限1:创建用户Net user lt 密码 /add2:创建登录Create login [dc\zs] from windows with default_database=master3:成为合法用户Create user lt for login [dc\zs]4:分配权限Grant select on yuangong to zs     删除zs 登录1:撤销权限Rovoke select on yuangong from zs2:删除用户、Drop user zs3:删除用户Drop login [dc\zs]例2:再来创建一个sql server 用户zs,只能查看yuangong 表女生记录1:创建登录Create login zs with paddword=’密码’,default_database=master2:成为合法用户Create user zs for login zs3:配权限Grant select on yuangong to zs ——所有记录要想查看女生记录,必须引用视图:Create view nvAsSelect * from yuangong where 性别=’女’Grant select on nan to zs删除用户zs操作1:删除操作Revoke select on yuangong from zs2:删除用户Drop user zs3:删除登录Drop login zs 架构:架构是一组数据库的集合,它包含四个部分:服务器名、数据库名、用户名、对象1、 架构与用户的管理没有从属关系2、 创建用户的时候可以指定默认架构,一般都推荐使用这种方法。3、 如果不指定,则用户属于DBO,拥有所有的权限4、 如果存在架构名,对象名访问对象是一直按在指定架构中查找。如果找不到,则在DBO中查找。 创建架构Create schema 架构名指定架构Grant select schema::架构名 to 用户名删除架构Revoke select schema::架构名 from 用户名更改用户的架构Alter user 用户名 with default_schema=架构类型更改对象架构Alter schema net transfer 架构类型.表名  Windows与sql server 权限分配 1:windows 组分配权限2:sql server 角色分配权限SQL Server 角色分配权限角色1:服务器角色2:数据库角色   1:标准数据库   2:应用程序   角色管理     角色    定义角色。数据库的权限管理是一项十分艰巨的工作,系统中的用户及应用程序都要有一定的权限集,才能进行工作。对于一个具有诸多表,诸多用户及各种不同职责的应用环境,一旦应用系统改变了,用户的权限也需要相应的改变。基于角色的权限管理较好的解决了这些问题,只需根据部门和企业的安全政策、操作规则划分出不同的数据库角色,通常可以为系统的每个职务定义一个数据库角色,然后根据需要把这些角色授予相应用户,即使某职务的权限发生了改变,也需要简单的该职务相对应的角色的权限,而不必修改该职务的每一个用户的权限。创建角色/删除角色1:Create role 角色名/ drop role 角色名 2:sp_addrole 角色名/ sp_droprole 角色名 数据的存储安全备份恢复策略数据备份与恢复是实现信息安全运行的重要技术之一,能保证信息系统因各种原因遭到破坏时,能尽快投入使用。不同的数据库拥有不同的备份恢复方法。一般来说,数据库的备份有导出/导入、冷备份、热备份;数据库的恢复可以通过磁盘镜像、数据库备份文件和数据库在线日志三种方式完成引入在线日志备份的简单概念:在线日志备份,在线文件日志是在DBSC进行安全审计的时候同步生成的,它以文件格式记录所有提交数据库并成功执行的SQL语句、用户名、操作时间等相关信息。其作用就是在数据库被意外破坏后,配合数据库服务器端提供的备份策略,对已经恢复到“某一时间点上”数据库,逐条执行在其中记录的数据库操作,以实现数据库服务器的“最近点恢复”。  导出/导入如何与其他数据源之间进行数据的导入与导出:导出:mysqL> SELECT *  FROM AA  INTO OUTFILE  'C:\\AA.TXT' FIELDS TERmINATED BY ',' enclosed by '"' lines terminated by '\r\n';导入:mysql> load data infile 'c:\\aa.txt' into table aa fields terminated by ',' enclosed by '"' lines terminated by '\r\n';备份方式:1:完全备份:备份指定数据库中所有内容Backup database 数据库 to 目的地2:差异备份:备份的是自完全以后发生更改的内容Backup database 数据库 to 目的地 with differential 3:事务日志备份:备份的是完全备份,差异备份以及事务日志备份以及以后发生更改的内容Backup log 数据库 to 目的地恢复模式:1:简单:只备份数据文件2:大容量日志:大容量操作产生的日志不能备份3:完全:完全支持日志,即时点还原特此声明:恢复模式的作用是制约备份方式 权限   权限设计:   仅仅完成用户的初级权限分配。从应用系统上来说,不同的用户可以操作的业务子系统是不同的;从数据库服务器上来说,有着相同模块操作权限的不同用户,他们操作表、视图、行列的权限又各不相同,这主要是由他们各自岗位的不同所决定的。使用应用程序的用户应该是数据库管理系统中的普通用户,与其在数据库服务器上的身份保持一致;应用系统需要按功能划分为不同的业务子系统,用户只能对他有权使用的业务子系统而涉及的数据库对象有相应的使用权限.数据灾难; 备份在当今信息化的时代,由于自然灾害的无法抗拒性和突发事故的无发预测性,会损失一些重要的数据信息,那我们该如何保障这些信息的安全性呢,以下我们介绍怎样应对数据灾难.异地容灾系统    异地容灾是指在相隔较远的异地,建立两套或多套功能相同的IT系统,当主系统因意外停止工作时,备用系统可以接替工作,保证系统的不间断运行。异地容灾中涉及的一个重要概念是数据复制,数据复制的主要目的是确保异地间各个系统关键数据和状态参数的一致。它可分为同步复制和异步复制。    同步复制的工作过程如下:当主系统主机向本地的存储设备发送一个I/O请求时,这个请求同时被传送到备份系统的存储设备中,等到两个存储设备都处理完成后,才向主系统主机返回确认信号。这样确保两个存储设备中数据的一致性。但是,当两个系统距离较远或者通讯效率不够时,向容灾系统发送I/O请求,会造成主系统明显的延迟,甚至会使主机无法正常工作。    异步复制是指主系统内主机与存储设备间的I/O处理与数据复制过程无关,即主机无须等待远端存储设备完成数据复制就开始下一次I/O操作。这样主系统与备份系统之间数据复制的通讯效率高,不会影响到主系统内部的处理能力,但是这样可能产生两系统中数据不一致问题。数据加密策略                        数据安全加密具体代码实现备份主密钥:backup service master key to file='c:\bak\smk.key' encryption by password='Ccjsj1200'还原主密钥:restore service master key from file='c:\bak\smk.key' decryption by password='Ccjsj1200'创建主密钥加密:create master key encryption by password='Ccjsj1200'select * from sys.databasesselect * from sys.symmetric_keys备份主密钥加密口令:backup master key to file='c:\bak\dmk.bak' encryption by password='Ccjsj1200'修改删除加密服务:alter master key  drop encryption by service master key修改增加加密服务:alter master key add encryption by service master keyopen master key decryption by password='Ccjsj1200'创建非对称密钥:create asymmetric key asy with algorithm=RSA_2048关闭主密钥:close master key删除主密钥:drop master key还原主密钥:restore master key from file='c:\bak\dmk.bak' decryption by password='Ccjsj1200' encryption by password='Ccjsj1200'*************证书***********************创建证书:create certificate cert1 encryption by password='Ccjsj1200' with subject='text',start_date='06-02/2009',expiry_date='06-02-2010'create certificate cert2  with subject='test',start_date='06-02-2009',expiry_date='06-02-2012'select * from sys.certificates删除证书:drop certificate cert1修改证书密码:alter certificate cert1 with private key (decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')备份证书:backup certificate cert1 to file='c:\bak\mycert.cer' with private key(file='c:\bak\mypvt',decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')修改证书移除私密:alter certificate cert1 remove private keyalter certificate cert1 with private key (file='c:\bak\mypvt',decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')删除证书:drop certificate cert1create certificate cert2 from file='c:\bak\mycert.cer' with private key (file='c:\bak\mypvt',decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')声明证书:declare @a varchar(100),@b varbinary(max)set @a='sql server easy'set @b=encryptbycert(cert_id('cert1'),@a)select @bselect cast(decryptbycert(cert_id('cert1'),@b,N'Ccjsj1200')as varchar(200)) drop certificate cert1**********非对称密钥**************create asymmetric key asy with  algorithm=RSA_2048 Encryption by password='Ccjsj1200'create asymmetric key asy1 with algorithm=RSA_2048 Encryption by password='Ccjsj1200'select * from sys.asymmetric_keysalter asymmetric key asy with private key (decryption by password='Ccjsj1200',encryption by password='Ccjsj1200')操作系统:sn.exe -k c:\bak\df.keycreate asymmetric key asy1 from  file='c:\bak\df.bak' encryption by password='Ccjsj1200'drop asymmetric key asy1 drop asymmetric key asy1 remove private keycreate asymmetric key asy1 from  file='c:\bak\df.key' encryption by password='Ccjsj1200'声明非对称密钥:declare @a varchar(100),@b varbinary(max)set @a='dufei'set @b=encryptbyasymkey(asymkey_id('asy'),@a)select @b                                                       select cast(decryptbyasymkey(asymkey_id('asy'),@b,N'Ccjsj1200') as varchar(100)) ************* 对称密钥  *****************create symmetric key sym1 with algorithm=AES_256 encryption by password='Ccjsj1200'open symmetric key sym1 decryption by password='Ccjsj1200'select * from sys.symmetric_keysopen symmetric key sym1 decryption by password='Ccjsj1200'alter symmetric key sym1 add encryption by certificate cert1alter symmetric key sym1 drop encryption by password='Ccjsj1200'close symmetric key sym1open....declare @a varchar(100),@b varbinary(max)set @a='dufei'set @b=encryptbykey(key_guid('sym1'),@a)select @bselect cast(decryptbykey(@b) as varchar(200))********************* 

本文出自 “1314永不言弃” 博客,请务必保留此出处http://xiaoshuo.blog.51cto.com/822549/194683