SQL SERVER 2005数据加密
-- 示例一, 使用证书加密数据.
-- 建立测试数据表
CREATE TABLE tb(ID int IDENTITY (1,1),data varbinary (8000));
GO
-- 建立证书一, 该证书使用数据库主密钥来加密
CREATE CERTIFICATE Cert_Demo1
WITH
SUBJECT = N'cert1 encryption by database master key' ,
START_DATE = '2008-01-01' ,
EXPIRY_DATE = '2008-12-31'
GO
-- 建立证书二, 该证书使用密码来加密
CREATE CERTIFICATE Cert_Demo2
ENCRYPTION BY PASSWORD = 'liangCK.123'
WITH
SUBJECT = N'cert1 encrption by password' ,
START_DATE = '2008-01-01' ,
EXPIRY_DATE = '2008-12-31'
GO
-- 此时, 两个证书已经建立完, 现在可以用这两个证书来对数据加密
-- 在对表tb 做INSERT 时, 使用ENCRYPTBYCERT 加密
INSERT tb(data)
SELECT ENCRYPTBYCERT ( CERT_ID ( N'Cert_Demo1' ), N' 这是证书1 加密的内容-liangCK' ); -- 使用证书1 加密
INSERT tb(data)
SELECT ENCRYPTBYCERT ( CERT_ID ( N'Cert_Demo2' ), N' 这是证书2 加密的内容-liangCK' ); -- 使用证书2 加密
--ok. 现在已经对数据加密保证了. 现在我们SELECT 看看
SELECT * from tb ;
-- 现在对内容进行解密显示.
-- 解密时, 使用DECRYPTBYCERT
SELECT 证书1 解密 = CONVERT ( NVARCHAR (50), DECRYPTBYCERT ( CERT_ID ( N'Cert_Demo1' ),data)),
-- 使用证书2 解密时, 要指定DECRYPTBYCERT 的第三个参数,
-- 因为在创建时, 指定了ENCRYPTION BY PASSWORD.
-- 所以这里要通过这个密码来解密. 否则解密失败
证书2 解密
= CONVERT ( NVARCHAR (50), DECRYPTBYCERT ( CERT_ID ( N'Cert_Demo2' ),data, N'liangCK.123' ))
from tb ;
-- 我们可以看到, 因为第2 条记录是证书2 加密的. 所以使用证书1 将无法解密. 所以返回NULL
/*
证书1 解密 &
相关文档:
2010-05-05 13:35:52.06 Server Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
2010-05-05 13:35:52.06 Server (c) 2005 Microsoft Corporation.
201 ......
如何判断字段是否存在
if col_length('表名','字段1') is null ALTER TABLE 表名 ADD 字段1 Nvarchar(50) if col_length('表名','字段2') is null ALTER TABLE 表名 ADD 字段2 Nvarchar(50) ");
删除字段
if col_length('表名','字段1,') is not null ALTER TABLE 表名 drop c ......
--合并行,并返回合并的值
Create proc [dbo].[proUniteRow]
@tab varchar(30), --表名
@col varchar(30), --合并的列名
@where varchar(2000), &nbs ......
针对 SQL Server 内正在执行的每个请求返回一行。sys.dm_exec_connections
、sys.dm_exec_sessions
和sys.dm_exec_requests
服务器范围动态管理视图映射到 sys.sysprocesses
系统视图(先前为系统表)。
注意:
若要执行在 SQL Server 以外的代码(例如,扩展存储过程和分 ......