关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »探讨SQL Server 2005的安全策略

    探讨SQL Server 2005的安全策略

    2015-11-25 00:00:00 出处:ITJS
    分享

    一、简介

    认证是你成功存取SQL Server的第一步。下图1展示了这种安全概念背后的相应模型。

    在一个用户被SQL Server成功地认证后,接下来进行的是授权过程以决定该用户在数据库上有哪些权限。在这一方面,SQL Server 2005又增加了两个新特性:

    当你在某一应用程序中使用密码学技术时,你必须设法对密钥(或是一非对称算法的私人密钥或是一对称算法的共享密钥)进行管理。SQL Server 2005提供了两个选项来管理用户密钥:
    用户自己管理密钥
    由SQL Server为你管理密钥
    当你自己管理密钥时,SQL Server用存在于数据库中的一给定口令字来存储对称密钥,这时你必须把该口令字保存在一个秘密的地方。而当由SQL Server来替你管理密钥时,它使用服务主键和数据库主键技术。图4展示了这一概念背后的思想。

    图4.SQL Server 2005中的服务和数据库主键

    正如你所见,这个服务主键处于服务器级别上。该键在SQL Server安装过程中被创建并且通过数据保护API(DPAPI)保护起来。用几个T-SQL语句,你就能把服务主键复制到一个文件中并能够从文件中恢复回去。
    数据库主键处于数据库级上并且必须通过administrator来显式地创建。可以通过口令或服务主键来对该主键进行加密。列表3说明了如何创建数据库主键:
    列表3

    CREATE MASTER KEY ENCRYPTION BY PASSWORD='p@ssw0rd1'

    一旦你创建了数据库主键,你就拥有了下列选项:
    用对称密钥加密
    用非对称密钥加密
    用证书加密
    你可以用T-SQL语句“CREATE SYMMETRIC KEY”来创建一对称密钥。这样的加密是通过一存储在表sys.symmetric_keys中的口令字或数据库主键进行的。为了使用一对称密钥,你必须先用语句OPEN KEY(见图5)打开它(这包括密钥的解密),之后,你就可以把该密钥用于你自己的加密目的。
     
    图5.用对称密钥进行加密

    对称密钥的优点在于它的高性能—它大约比同样的非对称密钥快1,000到10,000倍。缺点是加密和解密都使用一把密钥,而且双方都必须知道该密钥。你可以用语句“CREATE ASYMMETRIC KEY”来创建一非对称密钥。这样的密钥还可以通过一口令字或数据库主键来加密。列表4告诉你如何创建一非对称密钥:

    列表4

    --用口令加密
    CREATE ASYMMETRIC KEY MyKeyName AUTHORIZATION User1
    WITH ALGORITHM = RSA_512
    ENCRYPTED BY PASSWORD = 'p@ssw0rd1'
    --用数据库主键加密
    CREATE ASYMMETRIC KEY MyKeyName AUTHORIZATION User1
    WITH ALGORITHM = RSA_512

    一非对称密钥总是被存储在表sys.asymmetric_keys中。在你创建该密钥后,你能使用函数EncryptByAsmKey来加密数据而用DecryptByAsmKey来解密被加密的数据。列表5展示了这两个函数的使用:
    列表5

    DECLARE @EncryptedStuff varchar(1000)
    SELECT @EncryptedStuff = EncryptByAsmKey(AsymKey_ID('MyKeyName'),
    'My secret message')
    SELECT @EncrytedStuff
    SELECT CAST(DecryptByAsmKey(AsymKey_ID('MyKeyName'), EncryptedStuff)
    AS VARCHAR)

    最后,你还可以使用证书来加密数据,或者是一个现有证书—把它导入进数据库服务器中即可或是一个通过T-SQL语句“CREATE CERTIFICATE”创建的新证书。一个证书本身也能通过一口令字或通过数据库主键被加密。列表6显示出这两种可能性:

    -- 用口令加密
    CREATE CERTIFICATE MyCertificateName AUTHORIZATION User1
    WITH Subject 'My Subject',
    EXPIRY_DATE = '12/31/2006',
    ENCRYPTION_PASSWORD = 'p@ssw0rd1'
    -- 用数据库主键加密
    CREATE CERTIFICATE MyCertificateName AUTHORIZATION User1
    WITH Subject 'My Subject'

    五、 小结
    本文通过一些片断示例,分析了SQL Server 2005在安全方面提供的新功能。尤其应注意到,它在密码功能上作了很大改进。SQL Server 2005将更加成熟起来并在大型企业开发领域发挥重要作用。
    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。