一、 数据库的安全概述
        1. 载体安全 (就是操作系统的安全)
        2. 用户的安全 ,(就是说用户的帐号,密码等安全)
        3. 存储的安全 (就是存储设备的安全。备份。如:SAN存储局域网。光纤存储通道。。等)
        4. 网络传输 (就是数据的传输安全与可靠)
        5. 数据加密 (就是数据传输中的加密方式,使数据更加安全)
    (注:以上安全都是基于服务器物理安全,如果你的服务器都被人给搬走了就没什么意义了 !!)
  1. 载体安全
            对于sql server 来讲它的载体有许多。Windows 2003 ,Windows 2000 都是可以的,不同的版本对系统的要求也是不一样。但对操作系统的要求是一样的。一下是我的几点拙
              见:
          1) 在安装系统是必须把必要的补丁都打上
          2) 安装上正版的杀毒软件
         3) 安全的文件系统—(NTFS文件系统是当前最好的一个)
          4) 经常使用注册表与组策略对服务器系统进行安全维护
2 .用户安全
        1) 用户的管理
            a.Windows用户在系统中创建,登录数据库时Windows用户的验证方式有:windows验证,混合验证。两种验证方式。Sql用户是在数据库中创建。它的验证方式就有sql  
                server 自己验证,也就是混合验证
               b. 数据库验证方式的更改
                       数据库---属性
                    -----安全性- 这样就更改了 用户登录数据库时的验证方式
               c. SQL用户密码的修改
                          安全性—登录名—修改密码的用户
       2)图形界面下用户管理
                例:创建用户AA 只对数据库中的feifei表有查看权限
                            1.创建windows 用户AA
                          2.打开数据库 安全性---登录名---右击(新建登录名)--在登录名输入创建的用户名AA
                       3.用户以添加上了
                     4.把feifei表所在的数据库t1下给予权限
                                  在t1数据库---安全性---用户----新建用户(同上一样)
                       5.给AA用户拥有查看feifei 表的权限
                                   T1-----安全性---用户-----AA----右击(属性)---安全对象---添加----特定对象-----对象类型-----表----浏览---feifei表----给予他select
                                         这样就完成了 用户AA 只对t1下的 表 feifei 拥有查看权限 别的权限他是没有的 修改 删除它没有权限
           3)命令创建SQL用户可以修改feifei表中数据
                       1.创建sql server 用户 bb 密码 bb
                               create login bb with password=’bb’,default_database
                                  =master
                        2.在数据库t1中加入用户bb
                              create user bb for login bb
                      3.给予用户bb 对feifei 表有修改权限
                             grant update on feifei to bb
                                                       运行命令后可以看到bb 以对表feifei 有了update 权限
                     4.删除update权限
                               revoke update on feifei from bb
                     5.在数据库删除用户
                                 drop user bb
                     6.删除用户
                               drop login bb
      4) sql server 2005 用户加强
              1.用户策略:密码策略和锁定策略
                             (注:密码策略受系统组策略影响)
              2.架构(schema)
                   a.架构与用户管理有从属关系
                  b.创建用户,可以指定默认架构
                  c.不指定架构,则默认为DBO(数据库所有者)
                 d.存在架构后,对象后,访问对象时直接在指定架构中查找,如果找不到则查找DBO
            3.角色:作用同windows 中的组,是一个权限相同的用户集合
                  角色有服务器角色与数据库角色。
                a. 创建角色
                      sp_addrole 角色名
                 b. 在角色中加入用户
                        sp_addrolemember 角色名,用户名
                        exec sp_addrolemember 角色名,用户名
                       (exec:用在多条存储过程中)
                c. 查看角色中已存在的用户
                         sp_helprolemember 角色名
               d. 给角色分配权限
                      grant 权限 on schema::架构名 to 角色名
                 例: grant select on schema::DD to AA----》给角色AA有对DD查看的权限
                     e. 把角色加入某一个架构
                        alter authorization on schema::架构名 to 角色
3.数据存储安全
       1.备份策略: 完全备份
                             差异备份
                             事务日志备份
                             文件,文件组备份
        2.恢复模式:完全模式---(功能强,可以备份所有的日志)
                            大容量日志--(大容量日志不能保存)
                            简单(simple)---(所有日志都不保存)
                  (注:备份策略的选择是由恢复模式决定的)
1. 查看数据库恢复模式
    图形:
              t1(数据库)----右击(属性)---选项—(图)
     字符:
                 select * from sys.databases---查看所有数据库信息
2.备份
     1》创建备份设备
                sp_addumpdevice ‘disk’,’备份设备名’,‘设备位置’
        例:对t1数据库进行完全备份,备份到备份设备中
                sp_addumpdevice ‘disk’,’t1bak’,’c:\bak\t1bak’
                           -----创建备份设备t1bak 在c:\bak\t1bak
               Backup database t1 to t1bak
                          -----把t1数据库备份到t1bak设备中
     2》还原
           dorp database t1
           restore database t1 from t1bak
     3》差异备份
            backup database t1 to t1bak with differential----备份
              drop database t1 --------还原
           restore headeronly from tibak---查看备份状态
            restore database t1 form itetbak with file=1,norecovery
                     -----未封口(未完全还原完)
            restore database t1 from t1bak with file=2,recovery
                     ------封口
   4》事务日志备份
      1.insert into t1 feifei values (3,’张三’,‘男’) back log t1 to t1bak
       2.restore database t1 from t1bak with file=1,norecovery
3,备份和还原系统数据库
     1.备份master
      2.删除master
      3.生产临时master(安装光盘)
           cmd下写入 d:\>start /wait d:\setup,exe /an INSTANCE
                  NAME=mssqlserverREINSTALL=SQL_Engine REBUILDD ATABASE=1 sapwd=Ccjsj1200
      4,单用户进入SQL server (-m)
     5.还原
           restore database t1 from t1bak
   6正常方式启动
4.网络传输安全性
     1.对重要数据的加密:对称加密
                                  非对称加密
                                  证书加密
         1》 服务主密钥
           1. 用户不能手动创建和删除,在安装SQL server时自懂创建
               backup service master key to file=’c:\bak\t1bak’ encryption by password=’Ccjsj1200’—备份服务主密钥加密的文件
               restore service master key from file=’c:\bak\t1bak’ decryption by password=’Ccjsj1200
  2. 数据库主密钥
        a. 手动创建
        b. 128位的3DES密钥
              create master key encryption bypassword=’Ccjsj1200’----对当前数据库创建主密钥
               select * from sys.databases-----显示所有数据库的主密钥
              select * from sys.symmetric_keys-----显示当前数据库主密钥信息