我在通过两个不同的可信域连接到MySQL服务器时遇到问题 我们正在开发一个内部使用的应用程序,并一直在使用MySQL。这是一个用vb.net编写的桌面应用程序 到目前为止,所有用户都在同一个域上,没有任何问题。就在最近,由于各种原因,有一个更高层次的决定将用户分为两个不同的域 问题是来自新域的用户无法访问服务器。如果这有帮助,管理员告诉我,两个域中的用户都是可信的。这两台机器都运行Windows Server - 2003和2008 服务器端口是打开的,授权都在那里(base_class @%)但是在尝试时 -
用户base_class @datablock2的访问被拒绝。
有什么问题?
答案 0 :(得分:1)
拒绝访问意味着客户端正在连接,但没有相应的权限。因此,请专注于这些用户的grant
权限。请注意,mysql在*
个查询中使用GRANT
表示通配符,而不是%
,因此授权查询应为
GRANT ... ON database.* TO base_class@datablock2
另请注意,如果您在授权查询中使用主机名(datablock2),则需要正确配置DNS设置,以便MySQL可以将连接IP反向查找回主机名。主机名不存在于TCP / IP级别,MySQL只能看到IP。要匹配主机名,必须进行反向查找。如果该查找失败,那么它将完全脱离IP。
答案 1 :(得分:1)
IMO,这不是一项开发任务,它是一个系统管理员和/或DBA任务。因此,使用MS Query设计一个测试用例,并将其交给sysadmins / DBAs来解决。例如:一个ODBC配置,以及一个运行在MS Query中的SQL语句,它应该(在理论上)工作,并且在拆分之前可以工作。 证明它适用于旧域中的用户。告诉他们告诉您何时适用于新域名。 否则,他们将继续责怪你的VB应用程序。
答案 2 :(得分:0)
在MySQL中,基于每个域授予权限。也就是说,对于从不同域连接的用户,不存在授予从本地域连接的用户的许可。从不同域连接的同一用户被视为不同的访问者。原因是提供防止滥用的保护。例如,我个人配置我的服务器只向从本地计算机连接的用户授予潜在危险的权限。您必须以物理方式登录服务器计算机才能删除关键数据!尝试为每个用户在特定用户登录的每个域上授予服务器权限。根本不要使用外卡。利用额外的安全层来创建一个管理域,一个用于不太重要的任务。