2011-10-04 77 views
0

我在通过两个不同的受信任域连接到MySQL服务器时出现问题。
我们正在开发一个内部使用的应用程序,并且一直在使用MySQL。这是一个用vb.net编写的桌面应用程序。
到目前为止,所有的用户都在同一个域名,并没有问题。就在最近,出于各种原因,有更高级别的决定将用户分成两个不同的域。
问题是来自新域的用户无法访问服务器。如果有帮助,管理员会告诉我这两个域的用户都是可信的。这两款机器都运行Windows Server - - 2003年和2008年
服务器端口是开放的,补助都在那里(BASE_CLASS @%),但在尝试 -无法通过不同域连接到MySQL服务器

拒绝访问用户BASE_CLASS @ datablock2。

什么问题?

回答

0

在MySQL中,基于每个域授予权限。也就是说,授予从本地域连接的用户的权限对于从不同域连接的用户不存在。从不同域连接的同一用户被视为不同的访问者。原因是提供防止滥用的保护。例如,我个人配置我的服务器,只为从本地机器连接的用户授予潜在危险的权限。您必须以物理方式登录到服务器以删除关键数据!尝试授予他们将要从特定登录的每个域中的每个用户的服务器权限。根本不要使用通配符。利用额外的安全层来创建一个用于管理的域,一个用于不太关键的任务。

+0

谢谢!我不知道MySQL的基于域的权限。不幸的是,域名创建,修改和管理是我无法控制的。我必须在制造工作的基础上工作。我只需要找到一种方法使其在当前环境下工作。 – nnikolov06

+0

不可以!我投了克里斯的解决方案,因为说服真相的管理员是你唯一的希望。祝你好运。 –

+0

得到管理员的一些帮助。我遵循了您的建议,他们表示他们会修改域信任并为每个域和每个用户设置不同的用户权限级别。谢谢! – nnikolov06

1

拒绝访问表示客户端正在连接,但没有适当的权限。所以请专注于这些用户的grant权利。需要注意的是MySQL使用*通配符在GRANT查询,不%,所以授权查询应该是

GRANT ... ON database.* TO [email protected] 

还要注意的是,如果你正在使用的主机名(datablock2)在您的资助的查询,你会需要一个正确配置DNS设置,以便MySQL可以将连接IP反向查找回主机名。主机名不在TCP/IP级别,MySQL只能看到一个IP。要匹配主机名,它必须进行反向查找。如果该查找失败,那么它将完全脱离IP。

+0

我会在早上检查一下。希望这只是我没有设定权利的问题。 – nnikolov06

1

IMO,这不是一个开发任务,它是一个系统管理员和/或DBA任务。因此,设计一个使用MS Query的测试案例,并将其交给系统管理员/ DBA来弄清楚。例如:一个ODBC配置,以及一个SQL语句来运行MS Query,它应该(理论上)工作,并且在分割之前就可以工作。 证明它适用于来自旧域的用户。告诉他们,让他们知道何时适用于新域名。否则,他们会继续责怪你的VB应用程序。

+0

我同意你的意见。不幸的是,在目前的情况下,我将不得不在7/10之前这样做。系统管理员只声明域之间的所有关系都可以,并且这是我处理不同用户连接问题的问题。 – nnikolov06