湖中仙人 2024-03-15 10:54 采纳率: 14.3%
浏览 15

如何隐藏和查看隐藏的存储过程和触发器

如何隐藏和查看隐藏的存储过程和触发器
公司买的供应商的云星空系统,明显监控到调用了有些存储过程和触发器;但是我用sa账号进去都查不到,用的SQL SERVER的数据库;这是什么原因;如果要隐藏存储过程和触发器,和要查看隐藏的存储过程和触发器应该怎样做

  • 写回答

2条回答 默认 最新

  • 关注

    湖中仙人 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    在SQL Server中,隐藏存储过程和触发器有一些方法可以实现。其中,比较常用的方法有:

    1. 使用模式限制:可以在创建存储过程或触发器时使用WITH SCHEMABINDING选项,并指定一个模式(如dbo)。这样一来,即使查询系统表,也无法找到被隐藏的存储过程或触发器。

    2. 使用不常见的对象名称:可以使用一些没有明显业务含义的名称来命名存储过程或触发器,以防止被发现。

    3. 撤销权限:可以撤销其他用户对存储过程或触发器的访问权限,这样即使能够发现它们,也无法查看其定义或执行。

    4. 使用加密工具:可以使用第三方的加密工具,对存储过程或触发器的定义进行加密,以防止被查看。然而,这种方法可能会导致运行时性能下降。

    要查看隐藏的存储过程和触发器,可以尝试以下方法:

    1. 使用sys.objects和sys.sql_modules视图:这两个系统视图可以查询数据库中的所有对象和对象的定义。可以使用以下查询来查找隐藏的存储过程和触发器:
    SELECT o.name AS ObjectName, m.definition AS Definition
    FROM sys.objects o
    JOIN sys.sql_modules m ON o.object_id = m.object_id
    WHERE o.type IN ('P', 'TR') -- 只查询存储过程和触发器
    AND o.is_ms_shipped = 0 -- 排除系统对象
    AND o.name NOT LIKE 'sp_%' -- 排除以sp_开头的存储过程
    
    1. 使用查询系统视图:还可以使用其他系统视图,如sys.syscomments和sys.sysobjects,来查询对象的定义和属性。

    2. 重设访问权限:如果已经确定存储过程或触发器存在但无法查看,可以尝试重设自己的权限,或联系数据库管理员以获取访问权限。

    需注意,隐藏存储过程和触发器可能违反数据库的安全策略,以及可能违反公司或组织的规定。请确保了解并遵守相应的法律、政策和规定,在进行任何操作之前,应先与数据库管理员或相关人员进行沟通和协商。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月15日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上