这个问题来自好奇心。我搜索谷歌这个,但没有得到线索。
假设用户具有对MySQL数据库的完全读/写访问权限。我想知道,是否有任何方式(连接字符串中的某些参数)以只读模式通过相同的用户名和密码连接到数据库?
我希望不用更改此用户的权限,因为同一用户在其他时间也可能需要写入权限。这将有助于(如果可能)防止意外修改数据库。
答案 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,您也可以将其设置为会话变量。