如何在php中从用户端动态提供对数据库的访问权限?

如何在php中从用户端动态提供对数据库的访问权限?,php,javascript,Php,Javascript,我必须在php中为用户动态提供数据库中的编辑、查看、删除值等访问权限,以便超级管理员可以更改应用程序本身的权限。(无需打开数据库并为每个用户执行此操作)。可能与重复 假设我们有一个mysql数据库: mysql_connect('localhost','user',password); mysql_query("CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';"); mysql_query("GRANT ALL ON db1

我必须在php中为用户动态提供数据库中的编辑、查看、删除值等访问权限,以便超级管理员可以更改应用程序本身的权限。(无需打开数据库并为每个用户执行此操作)。

可能与重复

假设我们有一个mysql数据库:

mysql_connect('localhost','user',password);
mysql_query("CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';");
mysql_query("GRANT ALL ON db1.* TO 'username'@'localhost'");
mysql_query("CREATE DATABASE newdatabase");
mysql_close();
阅读有关在上授予mysql数据库访问权限和在上创建数据库用户的更多信息

以后编辑

$user_priviledges = array(
                       '__SELECT__' => array("select_user","password"),
                       '__SELECT_DELETE__' => array("select_delete_user","password")
                    );
// first you use just __SELECT__ user for getting the current user access information
mysql_connect('localhost', $user_priviledges['__SELECT__'][0], $user_priviledges['__SELECT__'][1]);
mysql_select_db('my_db');
$sql = mysql_query("SELECT user_access FROM access WHERE user_id='$my_loged_user_id'");
$row = mysql_fetch_array($sql);
if ($row['user_access'] != '__SELECT__') {
    mysql_close();

    // after you close the above mysql connection we can connect again with the real user access 
    mysql_connect('localhost', $user_priviledges[$row['user_access']][0], $user_priviledges[$row['user_access']][1]);
    mysql_select_db('my_db');
}

// my rest of code

mysql_close();
您必须关心系统的用户和用户访问,为此,我认为您必须实现一些类,这些类将根据系统(或用户)试图做什么来打开/关闭mysql连接


请注意,我建议您使用MySQLi而不是PHP中的旧mysql函数,但我必须提供将应用程序本身的权限更改为admin的选项。此外,授予所有用户的权限可能不相同。就像一个用户可以查看但不能编辑或删除,而另一个用户可以执行所有这三个操作。我已经为此制作了一张表格。但是,我不知道如何将这些值存储在数据库中,并在用户登录系统时使用。我已经编辑了我的答案。。我希望这次我说得更清楚