对于一个刚安装好的 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 是个非常强大而又危险的工具,为了数据库的安全,最好在使用这个工具时,让用户通过认证以策安全,我会在介绍 apache 服务器配置时介绍如何设置认证.