我正在尝试通过VS2010数据库项目模板中的SQL Server向导对数据库进行反向工程。我能够恢复我的数据库,但这还不够,因为为了让我的sprocs编译时没有错误和警告,我还需要包含我的链接服务器及其登录信息。但是,我的DBA不能授予我在SQL Server上运行该向导所需的VIEW ALL DEFINITION权限。在VS2010中,他们不想为我这样做,所以我被卡住了。有没有人成功编译或者找到了使用数据库级数据库项目和使用链接服务器和其他服务器级对象的变通方法?
我发现,我们的文件服务器中有一些本地用户配置文件(即服务器上的C:\ user ),用于那些显然没有权限直接登录(交互、远程等)到这些服务器的用户。
通过对文件夹和事件日志的一些分析,我能够首先确认最终用户没有任何直接登录到这些服务器,其次,将其中一个用户配置文件文件夹的确切创建时间和日期与类型3(网络登录)的登录关联起来--这基本上是用户访问共享资源(如文件共享)时所做的登录类型(请参见https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4624)。不用说,这看起来非常不寻常,
因此,我尝试利用System.Security.Cryptography.ProtectedData对象中的Unprotect方法,并不断获得异常:
cryptographicexception key not valid for use in specified state
我认为这与DataProtectionScope有关(但我不是100%)。
如果我登录并在调试模式下运行服务可执行文件,则此方法有效,这意味着它将在"currentuser“下运行。但是,如果我尝试运行实际的windows服务,它在LocalSystem帐户下运行,它将抛出前面提到的异常。
方法:
Protect