私は、ユーザー、アイテム、user_itemsなどのような "サービス"テーブルを持つLaravelでアプリケーションを作成しています。ユーザーがLaravelでクエリを実行できるDB内のテーブルを制限する
また、ユーザーがクエリを実行できるようにするためのテーブルがあります。つまり、ユーザーは自分のクエリーをサーバーに送信し、そこで実行されます。
問題は次のとおりです。ユーザーにSELECTクエリのみを実行させ、UPDATE、INSERTおよびDELETEを実行させないようにします。 また、これらのクエリを特定のテーブルに対してのみ実行できるようにする必要があります。つまり、ユーザーはユーザー表から選択することはできません。
ユーザーは生のクエリを実行します。つまり、DB:raw()が使用されます。
Laravelでどうすればいいですか?
解決策の1つは、MYSQLとsqliteという2つのデータベースを作成し、ユーザーがクエリを実行するためにsqliteのみを使用できるようにすることですが、この場合はテストに問題があります。
一部のユーザーはテーブルを使用でき、一部のユーザーは使用できません。 –
いいえ。私のアプリのすべてのユーザーは、独自のクエリをアプリに送信できます。ユーザーがタスクを正しく照会したかどうかを確認するアプリです。たとえば、ユーザーはテーブルから商品を選択する作業を行います。彼はクエリ "SELECT * FROM goods"を送信し、サーバーはそれが正しく行われたかどうかをチェックします。 –
まず、ユーザーがこの機能を使用する権限を持っているかどうかを確認してから、クエリを実行します。クエリを実行して、ユーザーがこの機能を使用するためのアクセス許可を持っているかどうかを確認するにはどうすればよいですか。 –