有没有办法让事务或连接只在SQL Server中读取?

时间:2009-02-11 11:04:29

标签: sql-server transactions

DELETE / UPDATE / INSERT需要快速“否”,因为3p报告工具允许用户编写自己的SQL。

我知道我应该添加一个新用户并设置table / sp / views / etc ...的权限,然后创建一个新连接作为受限用户。

是否有更快的方法将SQL Server中的事务或连接强制为只读模式?

5 个答案:

答案 0 :(得分:3)

我不知道。如果3P工具那么疯狂,我会对我所接触的内容完全偏执。我认为建立新用户是最好的选择。甚至可能只是给他们一些certian视图和/或存储过程并将其称为一天。

答案 1 :(得分:2)

为什么您担心用户在报告查询中放置任意SQL的能力?如果他们有权更改数据库中的数据,他们肯定可以使用任何ODBC客户端连接到它并直接执行SQL。

我不确定3P这是什么问题,听起来更像是你需要限制用户但却没有。

如果您有一类不允许更改数据的用户,请按此方式设置其帐户。依靠他们只使用不让他们更改数据的报告工具的事实是一个安全漏洞,我可以驾驶卡车。

如果允许他们更改数据,则限制3P的会话将无助于保护您的系统。

除非我误解了你的设置。我以前错了,就问我老婆。在这种情况下,请随时教育我。

答案 2 :(得分:1)

Change the permissions用于SQL Server上的用户(连接字符串中使用的用户)。

答案 3 :(得分:1)

是否必须与指定用户一起使用?我有一个“报告”用户和一个“浏览器”用户,它只对大多数表有选择权限。任何需要数据的人都使用这些帐户,因为他们只是选择,我不必担心它们。

参见Kern的链接。

答案 4 :(得分:0)

如果您在创建和关闭连接时可以控制,则可以执行BEGIN TRAN,然后在结束时执行ROLLBACK。这样,此报告工具所做的任何事情都将在最后回滚。但是,如果它能够管理这些事务或新连接,或者如果用户群是未知的并且可能是恶意的,则它不是万无一失的。此外,任何大型事务都可能导致您的数据库被用户操作锁定

我不得不说,真正的答案是将安全性分配给用户。您所用的“更快”方式是只具有只读权限的新用户。