MySQL 数据库GRANT命令增添新用户教程
GRANT语句增加新用户:
(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例1
代码如下 | |
shell> mysql --user=root mysql mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost; mysql> GRANT USAGE ON *.* TO dummy@localhost; |
直接通过发出INSERT语句增加同样的用户存取信息,然后告诉服务器再次装入授权表:
代码如下 | |
shell> mysql --user=root mysql mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') mysql> INSERT INTO user SET Host='localhost',User='admin', Reload_priv='Y', Process_priv='Y'; mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','dummy',''); mysql> FLUSH PRIVILEGES; |
为了使用GRANT语句设置个用户的权限,运行这些命令:
代码如下 | |
shell> mysql --user=root mysql mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* TO custom@localhost IDENTIFIED BY 'stupid'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON expenses.* TO custom@whitehouse.gov IDENTIFIED BY 'stupid'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON customer.* TO custom@'%' IDENTIFIED BY 'stupid'; |
通过直接修改授权表设置用户权限,运行这些命令(注意,在结束时FLUSH PRIVILEGES):
代码如下 | |
shell> mysql --user=root mysql mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','custom',PASSWORD('stupid')); mysql> INSERT INTO user (Host,User,Password) VALUES('server.domain','custom',PASSWORD('stupid')); mysql> INSERT INTO user (Host,User,Password) VALUES('whitehouse.gov','custom',PASSWORD('stupid')); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y'); mysql> FLUSH PRIVILEGES; |
如果上面的代码让你看不清楚或看的头晕的话我们可以利用phpmyadmin来修改密码。
1、新建数据库:
进入phpmyadmin管理界面以后,找到如下文字“创建一个新的数据库”,然后在下面填上要新建的数据库的名称,在后面的下拉列表中选择数据库的编码,一般为“gb2312_chinese_bin”,点击“创建”按钮,这样就新建了一个数据库。
2、新建此数据库的对应帐户
在phpmyadmin管理界面点击“权限”,打开链接,点击“添加新用户”,在打开的页面中会看到“登入信息”,输入用户名、主机(一般为本地:localhost)、密码后,因为我们现在是要给单个用户配置单个数据库的权限,所以我们在这里不选择“全局权限”,然后点击最下面的“执行”按钮,这样就新建了一个用户名。
3、为新建的用户添加此数据库权限
添加完用户以后,管理界面的上方会提示“您已添加了一个新用户”,我们现在就给新建的用户添加权限,在下面找到“按数据库指定权限”,然后点击“在下列数据库添加权限”后面的下拉列表,选择数据库,选择数据下面的全部,然后选择结构除了最下面三个以外的复选框,其他一律不选,然后点击“执行”按钮,这样就配置好了这个用户完全管理这个数据库的权限了。
注:因为我们只是要给这个用户管理这个数据库的全部权限,但是没有其他数据库的管理权限,所以在配置权限的时候一定要注意。
附:在phpmyadmin中显示的用户权限都是英文的,我们在此附上中文翻译:
数据:
SELECT:允许读取数据。
INSERT:允许插入和替换数据。
UPDATA:允许更改数据。
DELETE:允许删除数据。
FILE:允许从文件中导入数据以及将数据导出至文件。
结构:
CREATE:允许创建新数据库和表。
ALTER:允许修改现有表的结构。
INDEX:允许创建和删除索引。
DROP:允许删除数据库和表。
CREATE TEMPORARY TABLES:允许创建暂时表。
CREATE VIEW:允许创建新的意见。
SHOW VIEW:显示创建的看法。
CREATE ROUTINE:允许创建存储过程。
ALTER ROUTINE:允许改变和下降存储过程。
EXECUTE:允许许执行存储过程。
管理:
GRANT:允许添加用户和权限,而不允许重新载入权限表。
SUPER:允许在达到最大允许数目时仍进行连接。
PROCESS:允许查看进程列表中的完整查询。
RELOAD:允许重新载入服务器设置并刷新服务器的缓存。
SHUTDOWN:允许关闭服务器。
SHOW DATABASES:允许访问完整的数据库列表。
LOCK TABLES:允许锁住当前线索的表。
REFERENCES:在此版本的 MySQL 中无效。
REPLICATION CLIENT:用户有权询问附属者/控制者在哪里。
REPLICATION SLAVE:回复附属者所需。
CREATE USER:允许创建,下降和重新命名的用户帐户。