0

これは単純な質問に思えるかもしれませんが、私はリレーショナル データベースの経験が非常に限られています。MySQL で権限を微調整するにはどうすればよいですか。たとえば、次のコードがある場合

CREATE TABLE IF NOT EXISTS user(
ID INT NOT NULL AUTO_INCREMENT,

//...other columns

PRIMARY KEY(ID)
)ENGINE=InnoDB



CREATE TABLE IF NOT EXISTS pictures
(
ID INT NOT NULL AUTO_INCREMENT,
userID INT NOT NULL,

//...other columns

PRIMARY KEY(ID),
FOREIGN KEY (userID) REFERENCES user(ID)
)ENGINE=InnoDB";

2 人の新しいユーザーを作成user1user2、テーブルへのアクセス許可を与えることができます。

GRANT ALL PRIVILIGES ON db_name.* to ".user1."@\"%\" identified by ".pass1
GRANT ALL PRIVILIGES ON db_name.* to ".user2."@\"%\" identified by ".pass2

しかし、テーブル内の特権を特定のサブセットのみに制限する場所はどこにありますか? 代わりに、PHP コードでこれを実行する必要がありますか? 私はオブジェクト指向プログラミングに慣れているので、すべての情報を保持する大規模なテーブルには慣れていません。

4

3 に答える 3

1

PHP でアプリケーションのエンドユーザーに許可を与えることをお勧めします。データベース ユーザーを使用してアクセスを制御することは (私の意見では) 時代遅れの方法であり、一般的に行われていないため、MySQL/PHP での実行/サポートが難しい場合があります。

于 2011-03-24T03:03:16.850 に答える
1

具体的には、テーブルの一部の行へのアクセスを許可し、他の行へのアクセスを許可することはできません。これは、あなたが求めていることのように聞こえます。

于 2011-03-24T03:08:13.743 に答える
0

Grant Documentationでは、ドキュメントをチェックして、探している特定の権限を確認する必要があります。ただし、同じユーザーに対して個別の権限ごとに複数の付与を実行する必要があります (つまり、選択用に 1 つ、更新用に 1 つなど)。

于 2011-03-24T03:00:37.550 に答える