如何为用户分配文件的访问权限(存储在文件表中)(存储在我的用户表中)

时间:2012-09-05 11:24:34

标签: java

我正在java中编写一个存储库程序,我有一个User表,其中包含存储库的用户和一个文件表,其中包含MYSQL数据库中存储库中的所有导入文件。如何设置我的文件的访问权限用户?实际上,我如何确定哪个用户具有存储库中哪个文件的访问权限(读,写,读和写)?

谢谢

1 个答案:

答案 0 :(得分:0)

如果您正在编写文件存储库,那么文件访问权限应该是您的mocel的概念。您通常不会有专门的用户来运行文件存储库程序,并且所有文件都具有该用户的权限。

然后,授权用户的程序将从它的数据库表中读取用户对他们想要获取的文件具有哪种特权。

由于您将文件作为BLOB对象物理存储在数据库中,因此您应该创建另一个表,将用户权限存储到这些文件中。

create table privileges (
    userid bigint,
    fileid bigint,
    read bool,
    write bool,
    PRIMARY KEY (userid,fileid)
)

然后,只要您想检查用户是否具有对您执行的文件的读取权限

select userid, fileid from user u join privileges p on u.id=p.userid join files f on f.id=p.fileid and p.read=1