可能的重复:
确定架构更改是如何发生的?
我有一个存储过程,它在昨晚深夜修改过,早上大部分时间都在跟踪问题回到这个变化。
基本上没有人承认这一变化,所以我试图弄清楚如何找到谁修改了这个存储过程。我已经在网上研究过如何找到它,但看起来这是不可能的?
我想如果有人知道如何做到这一点,那就是这里的某个人。
我确实尝试过这个。:
“在 SSMS 中,右键单击服务器名称,选择报告/标准报告/架构更改历史记录。” --> 这没有给我任何东西,但我至少能够运行它,这为我提供了时间。
select name, create_date, modify_date
from sys.procedures
where name = 'mystoredprocedure'
Run Code Online (Sandbox Code Playgroud)
感谢您的任何建议或方向。
sql-server-2005 sql-server-2008 sql-server stored-procedures
我有很多过程在创建它们时使用了WITH ENCRYPTION选项。
您可以在下面的图片中看到这一点,例如:
问题是当我想保存我以前版本的存储过程时,我无法得到预期的结果,如下图所示。
我备份存储过程代码的方式在下面的链接上: 如何备份存储过程的当前代码及其权限?
select 'Proc' = SCHEMA_NAME(p.schema_id)+'.'+p.name
, 'Type' = per.state_desc, 'Permission' = per.permission_name
, 'Login' = pri.name, 'Type' = pri.type_desc
, *
From sys.procedures as p
left join sys.database_permissions as per on p.object_id = per.major_id
left join sys.database_principals as pri on per.grantee_principal_id = pri.principal_id
where ...
Run Code Online (Sandbox Code Playgroud)
有没有办法在保存之前从存储过程的代码中删除 WITH ENCRYPTION?
前提是我拥有该程序的所有权。
下面的链接上有一个几乎重复的问题 How to view an encrypted view or stored procedure
但是,在这个问题上,我拥有数据库。我是系统管理员。我可以使用任何资源,但我想要通过 T-SQL 的解决方案。