2016-01-11 39 views
0

我需要远程用户访问MySQL数据库。我还需要限制他们对MySQL数据库表的权限。当前数据库包含约。 50 +表,而不是撤销按表的权限表,我试图给用户没有权限的访问,然后添加那些需要的。我做了什么时,出现工作:MySQL对外部连接的撤销权限

  1. 我以root身份登录(通过SSH)
  2. 我登录使用“的mysql -u用户名-p” - 为新创建的用户输入自己的密码。

此用户帐户尊重我设置的所有权限。但是,当此用户尝试通过其桌面客户端连接时 - 他们可以连接但无法查看数据库。当使用“使用数据库名称”,他们得到这个错误:

错误代码:1044拒绝访问用户“用户名” @“%”数据库“数据库名称”

不知道这是否帮助,但我使用Media Temple DV w/Plesk。我已经第一次添加该用户。然后我SSH入并撤销所有权限。然后我添加了用户的权限并执行了命令“flush privileges”。没有任何工作。正如我所说,如果我通过命令行访问(以root用户身份进行SSH访问之后),权​​限将得到遵守,我可以访问数据库 - 只是不能远程访问。

任何帮助将不胜感激。

+0

如果你有机会检查从外部连接:选择用户,从mysql.user主机;在那里你会看到这个用户可以登录到mysql的主机 – xto

回答

0

可能是允许连接的网络是localhost,但不是用户网络IP。 并检查最大连接数量。

0

如果您是通过SSH以root的身份和MySQL数据库是在同一台机器上,那么我想,如果你运行:

mysql -u username -p 

你尝试连接到MySQL作为“用户名” @ 'localhost'用户。 如果你想从该服务器的外部连接到MySQL数据库,您需要:

  • 创建用户像“用户名” @“%”允许连接到MySQL使用“用户名”从任何地方(“% “)
  • 允许MySQL服务器通过设置绑定地址more details here
+0

我试过这个(用户使用mysql -u username -p连接),并且工作 - 当我登录时。这是当我使用远程客户端连接时 - 像MySQL Workbench),当它不。因为我使用的是Plesk,所以我首先在Plesk中创建用户,然后撤销所有权限,然后手动将其添加回来(即USAGE,SELECT,INSERT,UPDATE等)。首先有几十个表格需要撤销所有表格,并允许对特定的几个表格进行特定访问。 – ScoobaSteve

+0

但它不是关于特权。这是关于您想要连接的用户。当你被SSH连接并尝试连接到本地MySQL时,那么你以'user'@'localhost'连接。只允许该用户从本地主机连接 - 从您被SSH连接的服务器。如果您想从外部连接,例如通过Workbench,则需要创建用户'user'@'%'并将所有权限授予该用户。 – xto

+0

select current_user(); - 您可以检查登录后的用户 – xto