在只读模式下sql open connection

gti*_*333 24 mysql database-connection database-permissions

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

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

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

hgu*_*yan 16

你的问题的答案是

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

替代方案是

1.创建具有读取权限的sql用户

MVC3只读MySql连接字符串

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

MS SQL 仅授予视图的权限

MySQL 授予仅查看mysql视图的用户权限

3.在业务逻辑中实现权限层

祝好运!


Jon*_*ske 7

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


Isa*_*aac 5

根据您的用例和您拥有的控制权,您可以在连接后立即调用“设置事务只读”,或者在连接时使用 --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

  • 请注意,使用“SET”方法时,您可能需要包含“SESSION”(即“SET SESSION TRANSACTION READ ONLY”),否则效果仅适用于下一条语句,之后事务模式将恢复。 (2认同)