我开发了一个小型 C# 实用程序,用于执行数据验证、清理和导出。现在我正在为用户编写手册,我想模拟用户可能没有足够的权限对特定表执行某些数据库操作(SELECT 或 UPDATE)的情况。
该实用程序非常小,通过使用到数据库的受信任连接仅依赖于当前用户的 Windows 凭据,这意味着它使用从 AD 传播的我的 Windows 帐户的凭据。我对数据库服务器拥有全部权限,但我无法撤销自己的某些权限或将我的登录名映射到另一个权限较低的数据库用户,因为我的登录名已经映射到 dbo 并且我无法取消映射(错误消息如果我尝试,就会出现“无法删除 dbo 用户”。
那么,我该如何模拟我的实用程序缺少必要的权限呢?
最佳答案
您可以在测试中创建并抛出 SqlException 以模拟无权执行特定操作的情况。
您需要使用一些反射(检查 this 以获取辅助类)以将正确的错误添加到异常的 Errors 属性中。
关于sql-server - 如何在可信连接的SQL Server 上模拟用户权限问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13589835/