在只读模式下sql open connection

时间:2012-04-20 05:44:50

标签: mysql database-connection database-permissions

这个问题来自好奇心。我搜索谷歌这个,但没有得到线索。

假设用户具有对MySQL数据库的完全读/写访问权限。我想知道,是否有任何方式(连接字符串中的某些参数)以只读模式通过相同的用户名和密码连接到数据库?

我希望不用更改此用户的权限,因为同一用户在其他时间也可能需要写入权限。这将有助于(如果可能)防止意外修改数据库。

3 个答案:

答案 0 :(得分:16)

您的问题的答案是

不,没有办法在连接字符串中指定只读访问权限。

替代品

1。创建具有读取权限的SQL用户

MVC3 Read-Only MySql Connection String

2。使用权限检查逻辑创建视图或存储过程

MS SQL Grant permission to only a view

MySQL Grant a user permission to only view a mysql view

3. 在您的业务逻辑中实施权限层

祝你好运!

答案 1 :(得分:6)

这里最好的解决方案是在mysql服务器上使用只读权限创建另一个帐户,并使用它进行连接。

答案 2 :(得分:1)

根据您的使用案例和您拥有的控件,您可以进行代码调用"将事务设置为只读"连接后立即使用,或在连接时使用--init-command参数。这适用于我们的测试用例,

以下是设置的交易文档:https://dev.mysql.com/doc/refman/5.7/en/set-transaction.html,类似地,如果这会产生差异https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_transaction_read_only,您也可以将其设置为会话变量。