2014-01-08 28 views
1

当前我正在使用的SQL Server 2012数据库有一些存储过程,其中一些已加密,一些未加密。存储过程显示为已加密

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

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

我甚至能够使用代码

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

该代码是给我不同用户的不同计数来验证。据我所知,SP加密不是在用户级设置的。

任何想法是怎么回事?

回答

1

想通了。

用户已经失去了“VIEW DEFINITION”权限。这导致存储过程似乎被加密,即使它们不是。