SQL数据库和权限(通过PHP)

SQL数据库和权限(通过PHP),php,sql,database,permissions,Php,Sql,Database,Permissions,我正在创建一个网站,其中包括图片数据库。为了简单起见,让我们假设每幅图片都可以有一个描述和一个文件路径,并存储在一个表中,如下所示 CREATE TABLE IF NOT EXISTS picture ( ID INT NOT NULL AUTO_INCREMENT, description VARCHAR(150), file VARCHAR(150) NOT NULL, PRIMARY KEY(ID) ) ENGINE=InnoDB; 我希望用户能够通过ftp将图片上传到u

我正在创建一个网站,其中包括图片数据库。为了简单起见,让我们假设每幅图片都可以有一个描述和一个文件路径,并存储在一个表中,如下所示

CREATE TABLE IF NOT EXISTS picture
(
  ID INT NOT NULL AUTO_INCREMENT,
  description VARCHAR(150),
  file VARCHAR(150) NOT NULL,
  PRIMARY KEY(ID)
) ENGINE=InnoDB;
我希望用户能够通过ftp将图片上传到unix帐户,并创建自己的目录层次结构,而不是将所有这些图片存储在单个位置并分配任意文件路径。通过这种方式,他们可以使用ftp/sftp/scp复制它们,或者使用ssh和其他Linux程序,如imagemagik或zip。或更改图片的权限(见下文)

现在我意识到,如果用户决定删除或移动图片,这将导致问题,但我认为有办法解决这个问题(数据库不保证图片会在那里,写保护图片,重新实现
mv
/
rm


我几乎没有数据库方面的经验。我想知道这是否明智。具体来说,它是否适合用作数据库权限。例如,用户可以创建组
MJ12
,并向其中添加用户
WSimons
BPage
、和
ANavarre
,然后这些用户可以在网站上访问这些图片(我不知道是自动创建的,但通过PHP编写的)他们也可以用sftp/ftp/scp来回答他们。

在从社区获得其他问题的答案后,我现在可以回答我自己的问题了

显然,可以在PHP中使用
/etc/passwd
,通过
int fileperms(string$filename)
获取文件权限,并使用这些权限更新数据库,或者在允许访问文件之前将其用作检查。然而,这是矫枉过正。它更容易简单地使用

SUPPP是一个用于执行PHP脚本的工具,其权限为 他们的主人。它由一个Apache模块(mod_suphp)和一个setuid组成 由Apache模块调用以更改 执行PHP解释器的进程的uid

至于这是否可取,SO的普遍共识似乎是,只有在服务于某个目的的情况下才应该实现这样的服务器。这可以理解为“通常不可取”