如何使用可信连接模拟SQL Server上的用户权限问题?

时间:2012-11-27 17:33:40

标签: sql-server testing user-roles

我开发了一个小型C#实用程序,可以执行数据验证,清理和导出。现在我正在为用户编写手册,我想模拟用户可能没有足够权限在特定表上执行某些数据库操作(SELECT或UPDATE)的情况。

该实用程序非常小,只使用与数据库的可信连接依赖于当前用户的Windows凭据,这意味着它使用从AD传播的Windows帐户的凭据。我拥有数据库服务器的完全权限,但我无法撤销自己的某些权限或将我的登录映射到权限较少的其他数据库用户,因为我的登录已经映射到dbo而且我无法取消映射(错误消息“dbo用户不能被删除”,如果我尝试的话就来了。)

那么,我如何模拟我的实用程序缺少必要的权限?

1 个答案:

答案 0 :(得分:1)

您可以在测试中创建并抛出SqlException,以模拟无权执行某项操作的情况。

您需要使用一些反射(检查this out for helper class)以将正确的错误添加到异常的Errors属性中。