• Yeah, I tried something simple like that, too... and it worked fine. So I know part of the problem is the "real" code. It's a lot more complex, and given the sensitive nature of it I can't really post the specific code here. Never mind that I'd probably get yelled at for doing so - it's huge (and it ain't mine).

    The curious thing is that the exact same code... only changing the object names, and where applicable, references to them... yields the same thing. Works fine in 2008, access denied to the function in 2012. So... it's a combination of the code and something going on in 2012.

    Our development team is going to open a case with Microsoft on it. Developers and DBA's here are well-separated in their duties (i.e. it would take me a while to study it to even guess what it's actually doing from a business-logic perspective)... and the key here is clearly in the code itself, triggering "something unknown." It's only happening in 2012, but it's also only happening with that code, as we've both shown the fundamentals of ownership chains haven't changed. We're coordinating efforts but at this time development is on point. Something changed; by design or a bug, something changed. If we find an answer one way or another, I'll post it here.

    Thanks!