更改后通过证书向存储过程添加签名

Add signature to stored procedure by certificate after alter

我有一个用证书签名的存储过程。改成ALTER后,好像签名没了。我必须重新运行 ADD SIGNATURE TO 才能取回它。

有什么办法可以防止这种情况发生吗?否则我必须记住在我对过程进行更改时重新运行 ADD SIGNATURE 脚本。

不,这是设计使然。每次更改 SP 时,您都必须重新签署它。

否则,任何有权 ALTER SP 但无权访问证书的人都可以更改定义并将证书的隐含权限用于他们应该能够执行的任务。那将是一个主要的安全漏洞。

MSDN 文档指出更改模块时会删除签名。

https://docs.microsoft.com/en-us/sql/t-sql/statements/add-signature-transact-sql?view=sql-server-ver15

自然地,当某些东西改变时,它的签名也会改变。否则,签名将毫无用处。