本文属于SQL Server安全专题系列

在某些日常工作中,安全配置文件可能会成为需要保护的对象。下面对这些可能进行简介, 并演示元数据如何帮助你验证或实施策略。

Code Signing:

代码签名,代码注入攻击明显是违反了安全策略,可以使用代码签名来防御这类工具,假设安全策略上要求所有程序集和存储过程必须使用代码签名来最小化安全威胁。

下面的代码返回在数据库中的存储过程那些已经进行代码签名和是否签名有效。代码中使用了两个安全元数据对象,第一个是sys.Certificates。另外一个是sys.fn_check_object_signatures()。

视图用于返回证书信息,而函数返回所有可签名对象的列表,并指示对象是否由指定证书或非对称密钥签名。 如果对象是由指定证书或非对称密钥签名,则还会返回该对象的签名是否有效。

DECLARE @thumbprint VARBINARY(20) ;
--从sys.certificates中查询数据库的代码签名证书指纹(thumbprint)
SET @thumbprint =
(
SELECT thumbprint
FROM sys.certificates
WHERE name LIKE '%SchemaSigningCertificate%'
) ;
--把指纹传递给函数sys.fn_check_object_signatures检查存储过程的架构名
SELECT entity_id ,  SCHEMA_NAME(o.schema_id) + '.' + OBJECT_NAME(entity_id) AS
ProcedureName , is_signed , is_signature_valid
FROM sys.fn_check_object_signatures ('certificate', @thumbprint)  cos
INNER JOIN sys.objects o ON cos.entity_id = o.object_id
WHERE cos.type = 'SQL_STORED_ PROCEDURE ' ;
GO   

特定表的权限:

 对于很多系统,可能会有一些包含敏感数据的表,这些表根据安全策略要进行权限控制并做跟踪。此时可以使用SQL Server的元数据信息来协助。
 SQL Server提供了一个系统存储过程sp_table_privileges来识别安全主体,并且获取对应的权限清单。如下代码列出库中所有表的权限:
EXEC sp_table_privileges @Table_name = '%' ; 

本机结果如下:

说明:

 由于可用的存储过程、视图、函数非常的多,无法一一列举,读者可以举一反三地在微软文档中找到其他扩展功能,比如sys.fn_check_object_signatures这个函数,当你了解它的功能之后,不妨看看左边的其他相关功能进行类比和尝试:
 举一反三才能真正地扩展知识面。

SQL Server 安全篇——安全元数据(2)——安全对象(Securable)元数据相关推荐

  1. sql server 入门篇

    sql server入门篇 一.创建数据库 二.修改数据库 三.删除数据库 四.数据表创建 五.数据表数据修改(增.删.改) 六.数据表查询 七.数据表操作 一.创建数据库 1.格式 CREATE D ...

  2. SQL Server 安全篇——SQL Server 安全模型(1)——安全性主体层级

    本文属于SQL Server安全专题系列 前言: 随着数据安全性的越来越重要,很有必要介绍一下数据库的安全方面的内容.本文兼容SQL Server 2016,但是由于安全这个范围太大,不可能完全说清楚 ...

  3. SQL Server 安全篇——SQL Server加密(1)——加密概念

    本文属于SQL Server安全专题系列 加密是一种使用密钥和证书的算法来混淆数据的过程.如果没有密钥和证书,即使得到了数据,也无法得知数据的本来面貌,数据就没有价值了.但是由于加解密本身就是一种非常 ...

  4. Sql Server基础篇(一)

    Sql Server MySQL和SQL Server之间的区别: sql server和mysql都是广泛使用的关系数据库管理系统(RDBMS) 1.mysql支持enum,和set类型,sql s ...

  5. 理解SQL Server中的权限体系(下)----安全对象和权限

    在开始阅读本文之前,请确保你已经阅读过上一篇文章,文章地址: 理解SQL Server中的权限体系(上)----主体 简介 在上一篇文章中,我对主体的概念做了全面的阐述.本篇文章接着讲述主体所作用的安 ...

  6. SQL Server 基础理论 (六)数据库常用对象和数据库组成

    在SQL Server数据库中,表.字段.索引.视图和存储过程等具体存储数据或对数据进行操作的实体都被称为数据库对象.常用的几种数据库对象如下.    1.表 表是包含数据库中所有数据的数据库对象,由 ...

  7. SQL Server 2012 未将对象引用设置到对象的实例。(SQLEditors)

    1.错误描述 2.错误原因 创建了student数据库后,使用数据库时出现语法错误 use student; 3.解决办法 (1)重装SQL Server 2012

  8. 【Sql Server】DateBase-结构化查询特殊对象“游标”

    游标 作用: 1.    返回完整结果集 2.    定位特定行 3.    检查一行或多行 4.    当前修改 5.    可见性支持 6.    为不同对象访问结果集 语法: Declare 游 ...

  9. 《Microsoft SQL Server入门教程》第02篇 SQL Server 下载与安装

    文章目录 安装 SQL Server 安装 SQL Server Management Studio 连接 SQL Server 本篇我们介绍如何下载和安装 SQL Server 2019 开发者版本 ...

  10. ssma5.3_使用SSMA v7.1 for Oracle迁移到SQL Server

    ssma5.3 介绍 (Introduction) This is a second article that is a continuation of the Microsoft SQL Serve ...

最新文章

  1. 菜鸟解读qt源码----qsqlfield.h
  2. win10下,cmd可以运行java,却不能运行javac
  3. 硕士本科论文通过matlab出仿真图
  4. Java_异常_04_ OutOfMemoryError系列
  5. 【HDU - 1599】find the mincost route (Floyd最小环,最短路问题)
  6. 使用主题文件(包含CSS文件)时遇到的问题
  7. html写注册协议页面,html+css编写用户注册协议页
  8. 手动实现读写锁(线程级)
  9. Java对文件/文件夹进行压缩或解压缩
  10. 网络爬虫技术是什么,网络爬虫的基本工作流程是什么?
  11. 做数据建模有哪些工具是值得推荐的?
  12. python一对一辅导教程:Computational Problems for Physics chapter 1-A Code Listings 1.1 - 1.6
  13. Wave Arts Tube Saturator for Mac(实时电子管放大器插件) v1.38破解版
  14. 攻防世界pwn新手区整理
  15. ORACLE的统计分析
  16. MapReduce代码编写--求性别人数、求总分、关联、map端的过滤、combiner预聚合
  17. JMeter对接口进行压力测试
  18. 水平垂直分割详细介绍
  19. c语言求偶数的积,动物行为学1
  20. 什么是B2B电子商务模式

热门文章

  1. 排队论在计算机和通信领域的应用,随机过程与排队论——及其在计算机领域中的应用.pdf...
  2. html5车牌效果,车牌自编效果预览软件【京牌】
  3. C语言中按位取反操作符详解
  4. 前端好用的素材网站分享
  5. 红外图像动态范围压缩和对比度增强
  6. 红外图像特点及识别方法
  7. 一张图了解js运算符优先级
  8. 四周实现爬虫系统(1)-抓取tripadvisor猫途鹰网站数据信息
  9. qmc转码_QQ音乐qmc3格式转换器免费版
  10. graphpad prism8教程柱状图_Graphpad Prism 8作图教程(4):散点图