目前我正在处理的SQL Server 2012数据库有许多存储过程,有些是加密的,有些则没有。
现在,当我以大多数用户身份登录时,只有预期的存储过程显示为已加密。 (由他们锁定)
奇怪的是,对于一个用户来说,几乎所有其他未加密的存储过程都会显示出来。
我甚至可以使用代码进行验证
var encryptedSPs = db.StoredProcedures.Cast<StoredProcedure>()
.Where(x => !x.IsSystemObject && x.IsEncrypted).ToList();
该代码为不同的用户提供了不同的计数。据我所知,SP加密未在用户级别设置。
知道发生了什么事吗?
答案 0 :(得分:1)
想出来。
用户已失去“查看定义”权限。这导致存储过程看起来是加密的,即使它们不是。