问题:
有没有办法让PERSON
用户的视图jack
指向某个主要的人员表,让我们调用它MAIN_PERSON
并PERSON
为用户创建一个视图jill
并让它指向同一个MAIN_PERSON
表,不同之处在于,例如,jack
只能访问男性,并且jill
只能访问女性。
细节:
这是我想设置我的表/视图的方式
人表:
CREATE TABLE IF NOT EXISTS person
(
id INT NOT NULL auto_increment,
male BOOLEAN,
PRIMARY KEY(id)
)
engine=innodb;
查看千斤顶:
CREATE VIEW person_for_jacks_eyes_only
AS
SELECT * FROM person
WHERE
person.male = TRUE;
查看吉尔:
CREATE VIEW person_for_jills_eyes_only
AS
SELECT * FROM person
WHERE
person.male = false;
创建用户并授予权限:
GRANT SELECT ON DB.person_for_jacks_eyes_only TO jack@'localhost' IDENTIFIED BY '1234';
GRANT SELECT ON DB.person_for_jills_eyes_only TO jill@'localhost' IDENTIFIED BY '1234';
动机:
我想让不同的用户只访问行的一个子集。据我了解,这是视图的目的之一(另一个是将多个表组合在一起)。但是,我不想使用像 一样的晦涩的视图名称person_for_jacks_eyes_only
,因此我想使用特定于用户的local
名称。如果这是使用视图的错误方式,请有人指出我正确的方向。