我有几个小型的谷歌应用程序引擎应用程序正在访问同一个云SQL实例(以节省资源),我不想限制每个应用程序对这些单独数据库的访问;例如
1. CoolApp5 ---> global_db_instance -> coolapp5_db
2. EatFood ----> global_db_instance -> eatfood_db
3. WebsiteCo --> global_db_instance -> websiteco_db
配置Google可以SQL实例访问
当前的系统似乎允许应用程序访问全局实例数据库,但会产生安全漏洞。如果入侵者通过单个应用程序(coolap5/eatfood或websiteco)访问数据库,他将可以访问所有数据库。
例如。CoolApp5的Wordpress站点
<?php // wp-config.php
define('DB_HOST', ':/cloudsql/global_db_instance:db'); //
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'coolapp5_db');
?>
正如您所看到的,应用程序coolapp5
可以访问coolapp5_db
,并且可以访问其他数据库(eatfood_db, websiteco_db
),因为该应用程序具有root访问权限。
谷歌似乎允许通过外部IP地址
一个显而易见的解决方案可能是为每个应用程序提供许多单独的实例,但这对于小型应用程序来说效率低下,因为云SQL数据库可以同时运行多个网站。
有没有其他解决方案,或者我的策略根本不适用于谷歌云SQL?
在单个云SQL实例中为每个数据库/应用程序(文档)设置MySQL用户,并仅向这些新用户授予所需数据库的访问权限。