存储过程显示为已加密

时间:2014-01-08 17:37:35

标签: sql-server stored-procedures

目前我正在处理的SQL Server 2012数据库有许多存储过程,有些是加密的,有些则没有。

现在,当我以大多数用户身份登录时,只有预期的存储过程显示为已加密。 (由他们锁定)

奇怪的是,对于一个用户来说,几乎所有其他未加密的存储过程都会显示出来。

我甚至可以使用代码进行验证

var encryptedSPs = db.StoredProcedures.Cast<StoredProcedure>()
            .Where(x => !x.IsSystemObject && x.IsEncrypted).ToList();

该代码为不同的用户提供了不同的计数。据我所知,SP加密未在用户级别设置。

知道发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

想出来。

用户已失去“查看定义”权限。这导致存储过程看起来是加密的,即使它们不是。