计算机故障交流论坛
域名注册

浅谈数据库服务器的安全性

发表时间:09-5-27   来源:计算机故障网   点击:

  (三)通过对数据的加密来确保数据传输的安全性

  1口令加密:是个基本的数据加密技能,也是最弱的一种,它采用用户提供的口令字符串执行 加密

  2 对称加密::运用单一的密钥对数据执行 加密和解密,我们也可理解为一个“暗号”

  3非对称加密:它是最强的一种加密技能,因为它采用不同的密钥执行 加密和解密,结合证书来实现。在一般情况下不运用这种加密技能对数据量大的数据执行 加密,除非传输的数据安全性比操作数据的性能。

  建立非对称密钥的语法如下:

  Create asymmetric key asym_key_name

  [authorization database_principal_name]

  {

  From

  WITH ALGORITHM = {RSA_512 RSA_1024 RSA_2048}

  }

  ENCRYPTIONBY PASSWORD = ‘PASSWORD’

  :: =

  File =’path_to_strong-name_file’

  Executable file =’path_to_executable_file’

  Assembly assembly_name

  从语法中可以看出,一般可以采用指定加密算法的要领来建立非对称密钥,也可以采用从夫已经存在的文件中加载的要领建立非对称密钥,可以运用的加密算法有512位的RSA、1024位的RSA、2048位的RSA算法。

  下面我们建立一个名为BBS的非对称密钥

  Use itet

  Go

  Create asymmetric key bbs

  With algorithm = rsa_512

  Encryption by password = ‘fe34&*$PO2hs’

  可以从视图sys.asymmetric_keys中查到该非对称密钥:

  Select * from sys.asymmetric_keys

  也可从SQL SERVER Management studio 对象阅读器中依次展开【数据库】【itet】【安全性】【非对称密钥】中看到非对称密钥

  在建立非对称密钥之后,我们来看看如何 用该密钥对bbs执行 加密。在SQL2005中运用 Encryptbyasymkey()加密和Decryptbyasymkey()解密数据

  语法如下:

  Encrybyasymkey ( asym_key_id, {‘cleartext’ @cleartext})

  Dncrybyasymkey(asym_key_id, {‘ciphertext’ @ciphertext} [ ,’asym_key_password’])

  其中:asym_key_id 是数据库中非对称密钥的id

  Cleartext:是运用非对称密钥加密的数据字符串

  @cleartext 可以是类型为varchar 、char、 nvarchar、nchar、wchar等变量,包含了非对称密钥的加密数据

  Ciphertext 是运用非对称密钥加密的数据字符串

  @ciphertext 可以是类型为varchar、char、nvarchar、nchar、wchar等变量

  Asym_key_password: 是用于加密数据库中非对称密钥的密码

  不管是加密还是解密都用到了asym_key_id这个参数,即非对称密钥的id,这个可以通过asymkey_id()产生。语法如下:

  Asymkey_id(‘asym_key_name’) 通过非对称密钥的名字来返回非对称密钥的id

  下面我们就以员工的工资来测试

  加密:

  Intsert into yuangong values (1,’zhanglijie’,’gongchengbu’,

  encryptbyasymkey(asymkey_id(‘bbs’),’5000’))

  解密:

  select id,uname,bumen,convert(varchar(20),

  decryptbyasymkey(asymkey_id('bbs'),gongzi,

  cast('fe34&*$PO2hs'as nvarchar))) as gongzi from dbo.yuangong

  where id=1

  三 防止 SQL注入

  SQL注入主要是指黑客或恶意用户在运用 程序不知道的情况下通过运用 程序来对SQL数据库执行恶意代码来侵害数据库从而达到他们想要的结果。如对数据库的增、删、改等操作,我们可通过对命令

  Or 1=1--、having 1=1--等命令的封锁来减少危害。

第1页:浅谈数据库服务器的安全性(1)   第2页:浅谈数据库服务器的安全性(2)  

© CopyRight 2008-2010, JSJGZ.CN, 计算机故障 Inc. All Rights Reserved

闽ICP备09000710号 增值电信业务经营许可证闽B2-20080004号 Rss订阅