我正在开发一个具有庞大数据库的应用程序,其中包含许多具有数十亿行的表。我有分布在全球各地的开发团队。他们需要出于各种目的访问生产数据库。他们已被授予对 DB 的只读权限。如果您使用查询,它工作正常with (nolock)
。但是,如果您不使用nolock
,您可以通过运行一些永无止境的查询来关闭整个应用程序。去年发生了几次,所以现在我犹豫是否授予新开发人员许可。
我知道with (nolock)
为每个表创建一个视图并仅授予这些视图权限是一种解决方案,但不知何故我不想为此创建 200 个视图。
我正在寻找一种方法:
- 以使所有查询在没有锁定该用户的情况下运行的方式授予权限,或者
- 强制用户使用
with (nolock)
我们使用的是 SQL Server 2008 R2。
PS:到目前为止,我从未遇到过另一个基于 Oracle 的应用程序的问题,它比这个应用程序大 50 倍。