假设用户拥有 MySQL 数据库的完全读写权限。是否存在一种方式(连接字符串中的某个参数)以相同的用户名和密码以只读模式连接到数据库?
我希望实现这一点而无需更改该用户的权限,因为在其他时间该用户可能还需要写入权限。如果可能的话,这将非常有用,可防止对数据库的意外修改。
假设用户拥有 MySQL 数据库的完全读写权限。是否存在一种方式(连接字符串中的某个参数)以相同的用户名和密码以只读模式连接到数据库?
我希望实现这一点而无需更改该用户的权限,因为在其他时间该用户可能还需要写入权限。如果可能的话,这将非常有用,可防止对数据库的意外修改。
最佳解决方案是在MySQL服务器上创建另一个带有只读权限的帐户,并使用该帐户进行连接。
对于你的问题,答案是:
不,无法在连接字符串中指定只读访问权限。
替代方案包括:
1. 创建具有读取权限的 SQL 用户
2. 创建视图或存储过程并在其中配置权限检查逻辑
MS SQL 授予仅视图权限
MySQL 授予用户仅查看 MySQL 视图权限
3. 在你的业务逻辑中实现权限层
祝你好运!
SET
方法时,您可能需要包括SESSION
(即SET SESSION TRANSACTION READ ONLY
),否则该效果仅适用于下一个语句,之后事务模式将被还原。 - Courtney Miles