sql-server - 如何一次性检查我的所有 SQL Server 存储过程是否已加密?
问题描述
有什么方法可以一次检查我所有的存储过程是否都加密了?
我知道要查看程序的定义,我会收到一条消息,告诉我它已加密。
EXEC sp_helptext 'StoredProcedureName';
但是我有很多存储过程(1000+),那么有没有更好的方法来检查所有存储过程的 1 个镜头?
解决方案
您需要检查sys.sql_modules
系统视图。
SELECT
p.name,
IsEncrypted = CAST(CASE WHEN m.definition IS NULL THEN 1 ELSE 0 END AS bit)
FROM sys.procedures p
JOIN sys.sql_modules m ON m.object_id = p.object_id
WHERE m.definition IS NULL
或者,您可以检查对象属性(对@AaronBertrand 表示敬意)
SELECT
name,
IsEncrypted = OBJECTPROPERTY([object_id], 'IsEncrypted')
FROM sys.procedures;
推荐阅读
- reactjs - 给
- angular - 根据单击Angular中的按钮隐藏和显示表格的列
- javascript - 使用函数实现拆分方法
- java - 使用 JAXB 编组将元素添加/修改到 XML 文件
- azure-application-insights - 性能提示:此请求的 x% 用于等待
- qt - Qt 中的数据重新驱动测试
- python - Wagtail - 如何从设置菜单中删除子菜单项
- javascript - 使用javascript创建与输入复选框列表元素内联的文本元素
- firebase - Firebase 云消息 ID 有什么用?
- python-3.x - 获取多维 xarray.DataArray 的 n 个最小值