【问题标题】:How can I allow an employee to edit only certain tables?如何允许员工仅编辑某些表格?
【发布时间】:2014-04-26 23:58:23
【问题描述】:

我在 phpMyAdmin 中编辑我的数据库。
我只能有 1 个帐户。
我有数据库主机、数据库用户、数据库名称和密码(我的主机)。
我需要允许员工仅编辑某些表格。
有这样的工具吗? php脚本?其他方法?我该如何解决这个问题?

【问题讨论】:

  • 您的整个数据库只有一个帐户,还是您一个帐户,您的员工一个帐户?
  • @dima,详细说明你的问题.plz。告诉我们确切的上下文
  • 您可以编写一个只与该表交互的脚本,并授予员工而不是真正访问数据库
  • 可以创建具有表特定权限的 MySql 用户。限制每个表的用户访问/操作。如果您希望这些用户访问数据库,他们可以使用 MySql 客户端软件访问远程数据库。创建用户时,您需要将主机设置为 % 以允许远程登录到您的数据库
  • @denil 据我所知,OP 只有一个帐户,并且可能有多个员工。所以 OP 需要多个物理人使用同一个 mysql 帐户,并且被限制在不同的表中。这意味着,OP 需要在 mysql 之前的一层来与数据库交互

标签: php mysql sql database phpmyadmin


【解决方案1】:

您必须向只有 UPDATE 权限的用户授予 PRIVILEGES

  1. 转到您的控制台并登录到 MySql
  2. 通过以下方式创建您要授予权限的用户

    CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; 
    
  3. 然后授予特定表的权限

    GRANT [UPDATE ] ON [database name].[table name] TO ‘[username]’@'localhost’;
    

希望对你有帮助

【讨论】:

  • 我无法创建新用户
  • 您至少可以登录到您的数据库吗?所以在此基础上我可以建议你更多的解决方案
  • 我使用 phpMyAdmin。它安装在主机中
  • 您也可以通过 phpMyAdmin 创建用户,但如果它是共享主机,则非常困难。询问您的服务提供商是否可以创建多个数据库用户。如果是,则转到 phpmyadmin 中的 SQL 并在第一个查询之上运行。您需要在其中提供用户名和密码。将凭据记录在某处,然后将它们放入第二个查询中。
  • 感谢您的帮助!很有用。
【解决方案2】:

我的回答可能不正确,但据我从问题中了解到:

OP 只有一个 mysql 帐户,并且需要这个帐户,以供他的员工/s 用于特殊表。因此,如果 OP 仅授予此帐户上某些表的权限,则权限将等于使用该帐户的每个人。

在这种情况下,我建议在这个帐户的顶部做一个简单的数据库交互界面。该层将有自己的帐户,根据应用程序中登录的帐户,界面应显示您想要的表。

例如,如果有一个输入表格的字段来执行选择/更新/任何查询,你应该检查 if (in_array($field, $allowedTables)) 以授权用户执行查询。

【讨论】:

  • 这确实是这里唯一正确的答案。不幸的是,它需要一些额外的工作来编写处理与数据库接口的应用程序。我想真正的最佳答案是切换到允许您拥有多个数据库用户的主机,但您可能真的不应该为您的员工提供自己的 MySQL 帐户并通过 phpMyAdmin 访问,让我们回到需要编写您自己的应用程序,让他们可以访问他们需要的内容,并将他们与不需要的内容隔离开来。
【解决方案3】:

您可以使用view。为某些表创建视图并禁止员工的选择权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2021-12-25
    • 2019-12-31
    • 2023-04-04
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多