この質問は好奇心から生まれます。私はこれをグーグルで検索しましたが、手がかりがありませんでした。
ユーザーがMySQLデータベースへの完全な読み取り/書き込みアクセス権を持っているとします。読み取り専用モードで同じユーザー名とパスワードでデータベースに接続する方法(接続文字列の一部のパラメーター)はあるのでしょうか。
私はこれが必要ですなしこのユーザーの権限を変更します。同じユーザーが別のときにも書き込み権限を必要とする可能性があるためです。これは、(可能であれば)データベースを誤って変更しないようにするのに役立ちます。
ここでの最善の解決策は、mysqlサーバー上に読み取り専用権限を持つ別のアカウントを作成し、それを使用して接続することです。
あなたの質問への答えは
いいえ、接続文字列で読み取り専用アクセスを指定する方法はありません。
代替案は
1。読み取り権限を持つSQLユーザーを作成します
2。権限チェックロジックを含むビューまたはストアドプロシージャを作成する
MS SQL ビューのみに権限を付与
MySQL mysqlビューのみを表示する権限をユーザーに付与する
3。ビジネスロジックに権限レイヤーを実装する
幸運を!
使用例と使用しているコントロールに応じて、接続直後にコードで「set transaction read only」を呼び出すか、接続で--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 。