mysql 命令模式添加用户的方法

Share

      众所周知,mysql在现在的中小型企业和个人的应用中是越来越广泛了,一个msyql数据库server(现在的版本是5.0)才40M左右,但是功能确很全,而且最重要的是免费的。
    但是装好了server以后,很多人为找一个好的client而犯愁,而且还有好多是收费的(mysql的管理工具),其实,mysql给我们提供了很好的命令解决方法,下面我说说最常用的添加用户和赋权的命令。一共有两种方法。
    第一种:GRANT
      先看一段命令:
[leekooqi@icnote ~]$ mysql –user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO admin@”%” IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin001@localhost;
mysql> GRANT USAGE ON *.* TO leekooqi@localhost;

首先,解释下关键字,
这些GRANT语句安装3个新用户:

All:所有的权限,包括select ,update,delete,insert等等。

*.* : 即“数据库.数据表”,不难看出,我们可以控制用户到表的某个权限。

admin:可以从任何地方(IP)连接服务器的一个超级用户,但是必须使用一个口令('password'做这个。注意,我们必须对admin@localhost和admin@”%”发出GRANT语句。如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时由mysql_install_db创建的条目将优先考虑,因为它有更特定的Host字段值,所以以user表排列顺序看更早到来。

admin001:可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户。这允许用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,还有mysqladmin processlist。没有授予数据库有关的权限。他们能在以后通过发出另一个GRANT语句授权。

leekooqi:可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为'N'–USAGE权限类型允许你无需权限就可设置一个用户。它假定你将在以后授予数据库相关的权限。

    第二种方法:
    我们都知道,在mysql中,所有的表的权限,表名,数据库名,列名等等都是存储在mysql数据库中的,理所当然,我们也可以直接往里面插数据,例如,下面的代码将等效于上面的代码:

[leekooqi@icnote ~]$ mysql –user=root mysql
mysql> INSERT INTO user VALUES('localhost','admin',PASSWORD('password'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','admin',PASSWORD('password'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin001', Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;

至于怎么样细化这些权限,就有待自己去摸索了,这里不赘述了。
ok,就这么简单。