mysql 管理:mysql 运行权限

对于一个刚安装好的 mysql,其安全性是很差的,因为任何使用 mysql 的用户都能使用和更改数据库的资料,因此需要为 mysql 的 root 用户设置口令(mysql 的 root 与 linux 的 root 是两回事,它们之间没有任何关系).

为 root 设置口令需要用到 mysqladmin 这个命令,因为我安装的 mysql 在 /usr/local 下,因此,我到目录 /usr/local/bin 下运行这个命令:

#./mysqladmin -u root password "passwd"

"passwd" 是我为 root 设置的口令明文;

好了,我在 root 用户下运行 mysql:
#mysql

被拒绝了,再用下面的命令运行 mysql:
#mysql -uroot -p
出现:Enter password:

我输入密码后,成功登入了,因此不必再担心有其他用户随意使用数据库了,接着又出现问题了,root 权限在 mysql 里有控制一切的权利,当有用户请求使用数据库时,把 root 的密码告诉用户也是很危险的,所以我考虑在数据库再设置其他的用户帐号,并将适当的权限开放给他.

创建新用户和授权,需要用到下面这个语法:
grant privileges on what to user identified by "passwd" with grant option

privileges 分配权限
what 权限的应用级别
user 用户
passwd 密码明文
with grant option 使用这个子句时将允许用户将其权限分配给他人.

我准备创建 team 的用户,并只允许他使用 team 数据库的权限,所以我使用了以下的名令:
#mysql -uroot -ppasswd
先运行 mysql

>grant all on team.* to team@localhost identified by "team";

在这我给了 team 用户控制 team 数据库的所有权限,并且不允许他分配权限给其它人.

这样当用户请求使用数据库时,我只需将 team 用户的密码交给他就行了.

另外在 web 页控制 mysql 数据库的工具 phpMyAdmin 是个非常强大而又危险的工具,为了数据库的安全,最好在使用这个工具时,让用户通过认证以策安全。