在MySQL中设置应用程序权限

Moh*_*mad 2 mysql security privileges

假设您创建了一个博客应用程序,它的数据存储在MySQL数据库中.在应用程序配置中,将数据源名称设置为myBlog用户root密码whatever

现在,当用户开始使用您的博客访问,发布和评论线程等...我假设他们root通过应用程序连接myblog...

所以...用户连接到应用程序myBlog,而应用程序又以用户身份连接到MySQL root,使用密码whatever---它不是真正连接到MySQL的用户,而是应用程序.正确?

这种方法没有安全问题吗?我应该在MySQL中为myBlog具有特定权限的应用程序创建一个新的用户名,并root仅留下来管理数据库吗?

hvg*_*des 6

是的,应用程序连接到数据库.你应该为你的应用程序创建一个新的mysql用户,做类似的事情

CREATE DATABASE myblog_env;
CREATE USER 'myblogenv-user'@'%' IDENTIFIED BY 'your pw';
GRANT ALL PRIVILEGES ON myblog_env.* TO 'myblogenv-user'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

像上面这样的东西应该这样做.上面的'env'部分是为了你想为不同的环境创建一个新的数据库,比如dev,stage,prod,等等....

这样,您的应用程序用户可以完全访问其数据库,但mysql实例中没有其他数据库.

  • 谢谢!但是,将所有权限授予数百人使用的应用程序并不是一个坏主意吗? (2认同)
  • @Mel,在这种情况下,`GRANT ALL`意味着由于`ON`子句而提供所有数据库级别权限. (2认同)