web-dev-qa-db-ja.com

読み取り専用モードでのSQLオープン接続

この質問は好奇心から生まれます。私はこれをグーグルで検索しましたが、手がかりがありませんでした。

ユーザーがMySQLデータベースへの完全な読み取り/書き込みアクセス権を持っているとします。読み取り専用モードで同じユーザー名とパスワードでデータベースに接続する方法(接続文字列の一部のパラメーター)はあるのでしょうか。

私はこれが必要ですなしこのユーザーの権限を変更します。同じユーザーが別のときにも書き込み権限を必要とする可能性があるためです。これは、(可能であれば)データベースを誤って変更しないようにするのに役立ちます。

25
gtiwari333

ここでの最善の解決策は、mysqlサーバー上に読み取り専用権限を持つ別のアカウントを作成し、それを使用して接続することです。

7
Jon Kloske

あなたの質問への答えは

いいえ、接続文字列で読み取り専用アクセスを指定する方法はありません。

代替案は

1。読み取り権限を持つSQLユーザーを作成します

MVC3読み取り専用MySql接続文字列

2。権限チェックロジックを含むビューまたはストアドプロシージャを作成する

MS SQL ビューのみに権限を付与

MySQL mysqlビューのみを表示する権限をユーザーに付与する

3。ビジネスロジックに権限レイヤーを実装する

幸運を!

16
hgulyan

使用例と使用しているコントロールに応じて、接続直後にコードで「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

2
Isaac