6

以下のデータベースを用意する

id | userid | name
1  |    1   | John
2  |    1   | John
3  |    2   | Joe
4  |    2   | Joe
5  |    2   | Joe
6  |    3   | Sue
7  |    3   | Sue

データベースを作成してからユーザーを作成する方法を取得する必要があります。私がmysqlで作成した各ユーザーは、ユーザーIDのデータへのアクセスを制限しています。データベース内のすべてのデータベース テーブルには、userid 値があります。

したがって、それらが読み取り、更新、挿入、または削除のいずれであっても。そのデータベースにアタッチした特定の mysql ユーザーを経由している場合、そのユーザーには、ユーザー ID がある場所でのみ読み取り、更新、挿入、または削除を行う必要があります。

私はmysqlトリガーについていくつか読んだことがありますが、うまくいくものは見つかりませんでした。

データが含まれており、ユーザー ID によって制限されているバックエンドがあります。

Web サイトは、ユーザー ID so に基づいてそのテーブルからデータを取得しますselect * from articles where userid=1。現在、そのコードはユーザーが変更できます。記事から * を選択する方法が欲しいのですが、userid=1mysql はその mysql ユーザーの行のみを結果として取得します。目標は、すべてのユーザーが mysql データベースへの独自の mysql ユーザー ログインを持ち、そのユーザー ID の特定の値に制限することです。

何かご意見は?本当にありがとう!

4

2 に答える 2

3

GoogleResult[0]これがあります:

http://www.sqlmaestro.com/resources/all/row_level_security_mysql/

概要

この記事には、ビューやトリガーなどの MySQL 機能を使用して、MySQL 5.0 以降で行レベル セキュリティを実装するための段階的なガイドが含まれています。

于 2013-02-27T05:47:33.283 に答える
1

上手!そのためのテーブルを作ることを提案します。アプリケーション全体

user_rights

id  |   user_id |   insert  |   update | delete | read
1   |   2       |   0       |   0      |    0   |   1

注:許可されている場合は1、許可されていない場合は0。

ここで、何かを行う前に、まず権限を確認してから、他のアクションを実行します。

アプリケーションの一部を含む詳細な方法:

screens

id  |   title
1   |   articles
2   |   blog

user_rights

id  |   user_id |   insert  |   update | delete | read  |   screen_id
1   |   2       |   1       |   0      |    0   |   1   |       1
2   |   2       |   0       |   0      |    0   |   1   |       2

この方法では、画面レベルのアクセスを許可できます。ユーザーID2は記事を追加して表示でき、ブログも表示できますが。ここでは不適切な用語を使用している可能性がありますが、ご理解いただければ幸いです。

于 2013-02-27T06:25:57.257 に答える