SQL数据库加密方法
转贴自teched讲师: 牛可
基本概念:
第一层 服务主密钥
备份服务主密钥
backup service master key to file='c:\smk.bak'
encryption by password='P@ssw0rd'
restore service master key from file='c:\smk.bak'
decryption by password='P@ssw0rd'
第二层 数据库主密钥
1)必须先在该数据库上创建数据库主密钥才能使用
create master key encryption by password='P@ssw0rd'
2)使用数据库主密钥
-如果数据库主密钥使用服务密钥进行保护,则在使用时会自动打开
opren master key decryption by password='P@ssw0rd'
3)查看数据库主密钥状态
sys.symmetric_keys
4)备份数据库主密钥
backup master key to file='c:\smk.bak'
encryption by password='P@ssw0rd'
restore master key from file='c:\smk.bak'
decryption by password='P@ssw0rd'
数字证书
创建自签名
create certificate cert_myCert
encryption by password='P@ssw0rd'
with subject='Self Signed Cert',
start_date='1/31/2006'
expiry_date='1/31/2008'
非对称密钥
创建新的密钥对
create asymmetric key asy_Key1
with algorithm=RSA_2048
encryption by password='P@ssw0rd'
对称密钥
创建新的密钥对
create symmetric key SymKeyMarketing3
with algorithm=AES_2048
encryption by certificate asy_Key1
使用对称密钥
使用前必须打开
open symmetric SymKeyMarketing3
decryption by certificate asy_Key1
sys.open_keys
数据列加密
-使用对称密钥加密大量的列数据
-考虑使用证书,非对称密钥保护对称密钥
防止绕过加密数据列的攻击-使用验证器
注:
在加密列上的索引将变得无效
加密数据列的长度增长,建议使用varbinary(max)数据类型
修改已有的dml语句以支持加密的数据列
-----***********示例1 了解数据库加密体系结构*****-----
--************(1) 服务主密钥
--准备工作
--创建测试数据库TestDB
--1)备份服务主密钥
backup service master key to file='g:\smk.bak'
encryption by password='p@ssw0rd'
--2)生成新的主密钥
Alter service master key regenerate
--3)从备份文件还原服务主密钥
Restore
相关文档:
软件 : Sql Server 2005
这里并不是SQL语法大全,以下是常用的语句,对(数据库、表、字段、数据)的增删改查,如果需要详细全面的Transact-SQL语句,可以查Sql Server联机丛书,那里是最全的资料,一般安装Sql Server都会默认安装。
打开Sql Server联机丛书
开始 à 程序 à&n ......
在使用CLR存储过程中遇到的一些问题,在这里进行记录:
打开CLR的支持
--在Sql Server中执行这段代码可以开启CLR
exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_c ......
这是一个不错的例子,特转载分享之。
------------表中的字段---------------
CREATE TABLE [dbo].[stuInfo] (
[FNumber] [int] IDENTITY(1,1) NOT NULL ,
[FName] [nvarchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FNameen] [varchar] (35) COLLATE Chinese_PRC_CI_AS ,
[FSex] [char] (1) COLLATE C ......
在网上找了好多关于SqlServer2005转access的方法,大多都是用sql语句,而我不想用那种方法,于是我自己摸索出来如何将SqlServer数据库转换成access,方法可能有点笨,不过完成了转换的功能。下面是具体步骤:
1.打开Access,建立一个后缀名为.mdb的空的数据库文件(默认后缀可能是.accdb,我们把它改为.mdb就可以了),然后 ......