Sqlserver——日常维护——浅谈 '数据库密匙'、'端点'、'证书'、'密钥'之间的依赖关系

如图

根据图中描述的

Master Key :

概念:最顶层的是Master Key,它是数据库级别的对象,每个数据库只有一个Master Key

           其余的对象都是依赖它,或者是它的子对象

查看:通过系统视图----SELECT * FROM sys.symmetric_keys,可以查看数据的主密钥信息

CERTIFICATE:

概念:证书是依赖于Master Key 而创建的,没有Master Key无法创建证书

           它是数据库级别的对象,每个数据库可以有多个CERTIFICATE

查看:通过系统视图----SELECT * FROM sys.certificates 查看数据库中证书的相关信息

ENDPOINT:

概念:(用于数据库镜像时)端口是依赖于CERTIFICATE 而创建的,没有CERTIFICATE无法创建端口,

           它是数据库级别的对象,每个数据库可以有多个ENDPOINT

查看:通过系统视图----SELECT * FROM sys.endpoints 查看数据库中所有的端口信息

                                ----SELECT * FROM sys.database_mirroring_endpoints 查看数据库中用于镜像的端口信息

                                     其中certificate_id字段,可以找到这个端口依赖的证书是哪一个

SYMMETRIC KEY:

概念:SYMMETRIC KEY的依赖方式很特别,它可以依赖三种对象创建:

            ----首先它可以依赖于Master Key(主密钥)而创建,

            ----其次它也可以依赖于CERTIFICATE(证书)而创建

            ----最后它还能被依赖于其他已经创建的SYMMETRIC KEY(对称密钥)创建

            它是数据库级别的对象,每个数据库可以有多个SYMMETRIC KEY

查看:通过系统视图----SELECT * FROM sys.symmetric_keys 可以查看数据库中所有SYMMETRIC KEY的信息

ENCRYPTION KEY

概念:ENCRYPTION KEY可以依赖于CERTIFICATE 而创建,但是它和SYMMETRIC KEY不同,

           一个数据库中只能有一个ENCRYPTION KEY

查看:通过系统视图----SELECT * FROM sys.dm_database_encryption_keys

                                -----SELECT * FROM sys.key_encryptions  查看ENCRYPTION KEY的信息

以上就是大致的关于这几种数据库对象的依赖关系图.

这些有什么用呢?

当需要删除某个对象时,必须要同步删除所有依赖于它的对象才能够被删除,否则会报错

如下面几种情况,需要找到对应的依赖对象并一一删除他们才能够正常的删除想要删除的对象

等等

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值