2009-02-11 63 views
2

因为3p报告工具允许用户编写自己的SQL,所以我需要DELETE/UPDATE/INSERT快速“否”。有没有办法让事务或连接只能在SQL Server中读取?

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

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

回答

1

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

查看Kern的链接。

1

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

+0

我知道。但是,只有在处理报告时我只需要读取限制。 – dmajkic 2009-02-11 11:12:54

+0

@dmajik:所以使用多个用户并根据需要在他们之间切换。 – 2009-02-11 11:22:56

+0

@dmajkic,为什么只有报告?这背后的推理是什么? – paxdiablo 2009-02-11 11:27:26

3

我不知道。如果3P工具如此疯狂,我会对我所接触到的东西完全偏执。我认为设立一个新用户是最好的。也许即使只是给予他们认可的观点和/或存储过程,并且每天都会调用它。

2

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

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

如果您有一类不应该被允许更改数据的用户,那么请设置他们的帐户。依靠他们只会使用不会让他们更改数据的报告工具这个事实是一个安全漏洞,我可以驾驶卡车通过。

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

除非我误解了你的设置。我以前错了,只是问我的妻子。在这种情况下,请随时教育我。

0

如果您在连接创建并关闭时有控制权,您可以执行BEGIN TRAN,然后在最后执行ROLLBACK。这种报表工具所做的任何事情都会在最后回滚。但是,如果它能够管理这些事务或新的连接,或者如果用户群是未知的并且可能是恶意的,那么它不是万无一失的。另外,任何大型交易都可能导致你的数据库被你的用户锁定行动

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

相关问题