mysql用户以及用户授权
1.1创建mysql用户
mysql> create user test identified by \’test\’;
1.2为用户授权后面不加identified。
grant select on test.* to test@localhost;
1.3查看MYSQL数据库中所有用户
select distinct concat(\’User: \’\’\’,user,\’\’\’@\’\’\’,host,\’\’\’;\’) AS query FROM mysql.user;
or
select user,host FROM mysql.user;
删除用户:
mysql>Delete FROM user Where User=\’test\’ and Host=\’localhost\’;
mysql>flush privileges;
mysql>drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@\’%\’;
>drop user 用户名@ localhost;
为用户授权:
授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
-
授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):
mysql>grant all privileges on testDB.* to test@localhost identified by \’1234\’;
mysql>flush privileges;//刷新系统权限表
撤销某用户的某些权限
revoke select on test.* from test;
2.查看数据库中具体某个用户的权限
mysql>show grants for \’abcuser\’@\’localhost\’;
格式:show grants for \’用户名\’@\’登录主机\’;
or
mysql>show grants for abcuser@\’localhost\’; // 用户名的引号可以省略
如果列表显示用户的权限如下:
mysql >select * from mysql.user where user=\’cactiuser\’ \G
3.查看user表结构 需要具体的项可结合表结构来查询
mysql> desc mysql.user;
显示数据表结构
mysql>describe 表名;
4.例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@”%” Identified by “abc”;
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;
5. 修改mysql的root密码
第一种︰使用 set password 語法
mysq>SET PASSWORD FOR \’root\’@\’localhost\’ = PASSWORD(\’newpass\’);
第二种 :
用UPDATE直接编辑user表
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD(\’newpass\’) WHERE user = \’root\’;
mysql> FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe –skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD(“new password”) WHERE user=\’root\’;
mysql> FLUSH PRIVILEGES;