【问题标题】:How to provide access rights to database dynamically from user side in php? [closed]如何在php中从用户端动态提供对数据库的访问权限? [关闭]
【发布时间】:2012-10-26 06:03:14
【问题描述】:

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

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    可能与create db and user mysql and set privileges 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();
    

    http://dev.mysql.com/doc/refman/5.1/en/grant.html 上阅读有关授予 mysql 数据库访问权限的更多信息,并在 http://dev.mysql.com/doc/refman/5.1/en/create-user.html 上创建数据库用户

    后期编辑

    $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 连接

    请注意,我建议您在 PHP 中使用 MySQLi 而不是旧的 mysql 函数

    【讨论】:

    • 但我必须向管理员提供将应用程序本身的权限更改为管理员的选项。此外,对所有用户的授权可能也不相同。就像一个用户可以查看但不能编辑或删除,而其他用户可以做到这三个。我为此做了一个表格。但不知道如何将该值存储在数据库中并在该用户登录系统时使用它
    • 我已经编辑了我的答案.. 我希望这次我更明确
    猜你喜欢
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多