了解MySQL密码

时间:2012-04-01 12:32:14

标签: mysql passwords connection-string

可能我不能变得更愚蠢,但是认真地说这是我第一次考虑它(这是单个用户应用程序第一次从多个位置转向多用户)。出于什么目的,MySQL(或任何其他数据库)密码?我们在连接字符串中看到的密码,就好像这样:

"SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"

branch是用户root访问数据库tree的代码字吗?或者root是否可以访问特定计算机上的任何MySQL数据库?或者它是任何用户访问数据库tree的密码?或者任何用户访问该机器上任何MySQL数据库的密码?

所以我的问题基本上都是?

  1. 密码是否特定于MySQL,数据库或用户?或者针对该特定MySQL安装上的特定数据库的特定用户?或者这些的任何组合?

  2. 我们可以拥有MySQL本身的密码(如果不是branch的情况),我们是否可以拥有db本身的密码(如果不是branch的情况)等?

  3. 对不起我的无知;)

    编辑:我可以运行此查询来删除我的数据库:

    query = "DROP DATABASE tree";
    

    连接字符串:

    "SERVER=localhost;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"
    

    这是不是说每个数据库都不是密码,而是每个用户?

2 个答案:

答案 0 :(得分:1)

密码允许用户连接到数据库。

其中一个。

即。该特定用户可以使用该特定密码连接到该特定数据库实例。

答案 1 :(得分:1)

  

1)密码是否特定于MySQL,数据库或   用户?或者针对该特定数据库的特定用户   特别是MySQL安装?或者这些的任何组合?

让我从头开始。第一次安装MySQL时,系统会要求您输入用户名(例如root)和密码(例如root)。这适用于整个服务器。 使用上述用户名和密码连接到服务器后,您可以出于不同的原因创建用户帐户,例如:用户'abc',密码为'xxx',应该只连接到一个数据库,比如Test。而且,另一个用户'xyz'密码为'aaa'可以连接到服务器并访问所有数据库,但只有SELECT权限。

 CREATE USER 'abc'@'%' IDENTIFIED BY 'xxx'; 
 FLUSH PRIVILEGES; 
 GRANT ALL ON `test`.* TO 'abc'@'%' WITH GRANT OPTION;

此处,密码为“xxx”的用户'abc'可以连接到服务器但具有最小权限 - 仅访问测试数据库。

 CREATE USER 'xyz'@'%' IDENTIFIED BY 'aaa'; 
 FLUSH PRIVILEGES; 
 GRANT SELECT ON *.* TO 'xyz'@'%' ;

此用户 - 密码为'aaa'的'xyz'连接到仅具有SELECT权限的服务器。

因此,具有不同密码的三个用户实际上可以使用“root”用户连接到服务器,密码“root”具有所有权限,而“abc”和“xyz”具有最小权限。

我想我也回答了你的第二个问题: - )