Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1488847
  • 博文数量: 408
  • 博客积分: 10036
  • 博客等级: 上将
  • 技术积分: 4440
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-06 13:57
文章分类

全部博文(408)

文章存档

2011年(1)

2010年(2)

2009年(1)

2008年(3)

2007年(7)

2006年(394)

我的朋友

分类: Mysql/postgreSQL

2006-07-31 18:20:42

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 是个非常强大而又危险的工具,为了数据库的安全,最好在使用这个工具时,让用户通过认证以策安全,我会在介绍 apache 服务器配置时介绍如何设置认证.
阅读(1400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~